Board Formatting

Adds formatting for the code board

当前为 2015-07-22 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Board Formatting
  3. // @namespace http://www.hacker-project.com/
  4. // @version 0.6
  5. // @description Adds formatting for the code board
  6. // @author Kevin Mitnick
  7. // @match http://www.hacker-project.com/index.php?action=group*
  8. // @match http://hacker-project.com/index.php?action=group*
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. function main() {
  13. var spans = document.getElementsByTagName("span");
  14. for (var i = 0; i<spans.length; i++) {
  15. if (spans[i].getAttribute("class")=="yellow") process(spans[i]);
  16. }
  17. var announcementtd = document.getElementsByClassName("emi5")[0];
  18. process(announcementtd);
  19. }
  20. function process(span) {
  21. var val = span.innerHTML;
  22. // XSS
  23. while (val.indexOf("[[")>-1) val = val.replace("[[", "<");
  24. while (val.indexOf("]]")>-1) val = val.replace("]]", ">");
  25. span.innerHTML = val;
  26. var sar = [
  27. [":)", "http://goo.gl/QKRt2U"],
  28. ["xd", "http://goo.gl/21TUiI"]
  29. ];
  30. for (var sari = 0; sari < sar.length; sari++) {
  31. var sa = sar[sari];
  32. var s = sa[0];
  33. var addr = sa[1];
  34. while (val.toLowerCase().indexOf(s)>-1) {
  35. var first2 = val.substring(0, val.toLowerCase().indexOf(s));
  36. var last2 = val.substring(val.toLowerCase().indexOf(s)+s.length, val.length);
  37. span.innerHTML = first2+"<img src='"+addr+"' width='16px'/>"+last2;
  38. val = span.innerHTML;
  39. }
  40. }
  41. var ar = [
  42. ["bb",
  43. ["font-weight", "bold"]
  44. ],
  45. ["r",
  46. ["color", "red"]
  47. ],
  48. ["g",
  49. ["color", "green"]
  50. ],
  51. ["b",
  52. ["color", "blue"]
  53. ]
  54. ];
  55. for (var sc = 0; sc < ar.length; sc++) {
  56. var sca = ar[sc];
  57. var scv = sca[0];
  58. for (var cc = 1; cc < sca.length; cc++) {
  59. var cca = sca[cc];
  60. var set = cca[0];
  61. var chng = cca[1];
  62. var tag = "["+scv+"]";
  63. if (val.indexOf(tag) > -1) {
  64. var priorStyle = span.getAttribute("style");
  65. if (priorStyle===null) priorStyle = "";
  66. span.setAttribute("style", priorStyle+" "+set+": "+chng+";");
  67. var first = val.substring(0, val.indexOf(tag));
  68. var last = val.substring(val.indexOf(tag)+tag.length, val.length);
  69. span.innerHTML = first+last;
  70. }
  71. }
  72. }
  73. }
  74.  
  75. main();