1 require('codemirror/mode/css/css');
2 require('codemirror/mode/clike/clike');
3 require('codemirror/mode/go/go');
4 require('codemirror/mode/htmlmixed/htmlmixed');
5 require('codemirror/mode/javascript/javascript');
6 require('codemirror/mode/markdown/markdown');
7 require('codemirror/mode/nginx/nginx');
8 require('codemirror/mode/php/php');
9 require('codemirror/mode/powershell/powershell');
10 require('codemirror/mode/python/python');
11 require('codemirror/mode/ruby/ruby');
12 require('codemirror/mode/shell/shell');
13 require('codemirror/mode/sql/sql');
14 require('codemirror/mode/toml/toml');
15 require('codemirror/mode/xml/xml');
16 require('codemirror/mode/yaml/yaml');
18 const CodeMirror = require('codemirror');
31 javascript: 'javascript',
32 json: {name: 'javascript', json: true},
39 powershell: 'powershell',
53 module.exports.highlight = function() {
54 let codeBlocks = document.querySelectorAll('.page-content pre');
56 for (let i = 0; i < codeBlocks.length; i++) {
57 let innerCodeElem = codeBlocks[i].querySelector('code[class^=language-]');
59 if (innerCodeElem !== null) {
60 let langName = innerCodeElem.className.replace('language-', '');
61 if (typeof modeMap[langName] !== 'undefined') mode = modeMap[langName];
63 codeBlocks[i].innerHTML = codeBlocks[i].innerHTML.replace(/<br\s*[\/]?>/gi ,'\n');
64 let content = codeBlocks[i].textContent;
65 console.log('MODE', mode);
67 CodeMirror(function(elt) {
68 codeBlocks[i].parentNode.replaceChild(elt, codeBlocks[i]);
73 theme: 'base16-light',
80 module.exports.markdownEditor = function(elem) {
81 let content = elem.textContent;
83 let cm = CodeMirror(function(elt) {
84 elem.parentNode.insertBefore(elt, elem);
85 elem.style.display = 'none';
90 theme: 'base16-light',