Adds formatting for the code board
当前为
// ==UserScript==
// @name Board Formatting
// @namespace http://www.hacker-project.com/
// @version 0.5
// @description Adds formatting for the code board
// @author Kevin Mitnick
// @match http://www.hacker-project.com/index.php?action=group*
// @match http://hacker-project.com/index.php?action=group*
// @grant none
// ==/UserScript==
function main() {
var spans = document.getElementsByTagName("span");
for (var i = 0; i<spans.length; i++) {
if (spans[i].getAttribute("class")=="yellow") process(spans[i]);
}
}
function process(span) {
var val = span.innerHTML;
// XSS
while (val.indexOf("[[")>-1) val = val.replace("[[", "<");
while (val.indexOf("]]")>-1) val = val.replace("]]", ">");
span.innerHTML = val;
var sar = [
[":)", "http://goo.gl/QKRt2U"],
["xd", "http://goo.gl/21TUiI"]
];
for (var sari = 0; sari < sar.length; sari++) {
var sa = sar[sari];
var s = sa[0];
var addr = sa[1];
while (val.toLowerCase().indexOf(s)>-1) {
var first2 = val.substring(0, val.toLowerCase().indexOf(s));
var last2 = val.substring(val.toLowerCase().indexOf(s)+s.length, val.length);
span.innerHTML = first2+"<img src='"+addr+"' width='16px'/>"+last2;
val = span.innerHTML;
}
}
var ar = [
["bb",
["font-weight", "bold"]
],
["r",
["color", "red"]
],
["g",
["color", "green"]
],
["b",
["color", "blue"]
]
];
for (var sc = 0; sc < ar.length; sc++) {
var sca = ar[sc];
var scv = sca[0];
for (var cc = 1; cc < sca.length; cc++) {
var cca = sca[cc];
var set = cca[0];
var chng = cca[1];
var tag = "["+scv+"]";
if (val.indexOf(tag) > -1) {
var priorStyle = span.getAttribute("style");
if (priorStyle===null) priorStyle = "";
span.setAttribute("style", priorStyle+" "+set+": "+chng+";");
var first = val.substring(0, val.indexOf(tag));
var last = val.substring(val.indexOf(tag)+tag.length, val.length);
span.innerHTML = first+last;
}
}
}
}
main();