]> BookStack Code Mirror - bookstack/blob - resources/assets/js/code.js
Revert "Bookstack grid view."
[bookstack] / resources / assets / js / code.js
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');
17
18 const CodeMirror = require('codemirror');
19
20 module.exports.highlight = function() {
21     let codeBlocks = document.querySelectorAll('.page-content pre');
22
23     for (let i = 0; i < codeBlocks.length; i++) {
24         codeBlocks[i].innerHTML = codeBlocks[i].innerHTML.replace(/<br\s*[\/]?>/gi ,'\n');
25         let content = codeBlocks[i].textContent;
26
27         CodeMirror(function(elt) {
28             codeBlocks[i].parentNode.replaceChild(elt, codeBlocks[i]);
29         }, {
30             value: content,
31             mode:  "",
32             lineNumbers: true,
33             theme: 'base16-light',
34             readOnly: true
35         });
36     }
37
38 };
39
40 module.exports.markdownEditor = function(elem) {
41     let content = elem.textContent;
42
43     let cm = CodeMirror(function(elt) {
44         elem.parentNode.insertBefore(elt, elem);
45         elem.style.display = 'none';
46     }, {
47         value: content,
48         mode:  "markdown",
49         lineNumbers: true,
50         theme: 'base16-light',
51         lineWrapping: true
52     });
53     return cm;
54
55 };
56