7b7e9ca6c6a7d448e57b3e32b3afffbd785f83111a9e06488c5e2925223b2d9253692af6e8393d1d047789e7e6bcc4e5df0a21b02d08b511181ff834b0502a 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // CodeMirror, copyright (c) by Marijn Haverbeke and others
  2. // Distributed under an MIT license: https://codemirror.net/5/LICENSE
  3. (function(mod) {
  4. if (typeof exports == "object" && typeof module == "object") // CommonJS
  5. mod(require("../../lib/codemirror"), require("./runmode"));
  6. else if (typeof define == "function" && define.amd) // AMD
  7. define(["../../lib/codemirror", "./runmode"], mod);
  8. else // Plain browser env
  9. mod(CodeMirror);
  10. })(function(CodeMirror) {
  11. "use strict";
  12. var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/;
  13. function textContent(node, out) {
  14. if (node.nodeType == 3) return out.push(node.nodeValue);
  15. for (var ch = node.firstChild; ch; ch = ch.nextSibling) {
  16. textContent(ch, out);
  17. if (isBlock.test(node.nodeType)) out.push("\n");
  18. }
  19. }
  20. CodeMirror.colorize = function(collection, defaultMode) {
  21. if (!collection) collection = document.body.getElementsByTagName("pre");
  22. for (var i = 0; i < collection.length; ++i) {
  23. var node = collection[i];
  24. var mode = node.getAttribute("data-lang") || defaultMode;
  25. if (!mode) continue;
  26. var text = [];
  27. textContent(node, text);
  28. node.textContent = "";
  29. CodeMirror.runMode(text.join(""), mode, node);
  30. node.className += " cm-s-default";
  31. }
  32. };
  33. });