diff --git a/resources/assets/js/code.js b/resources/assets/js/code.js index 872b13426..020c38365 100644 --- a/resources/assets/js/code.js +++ b/resources/assets/js/code.js @@ -17,18 +17,58 @@ require('codemirror/mode/yaml/yaml'); const CodeMirror = require('codemirror'); +const modeMap = { + css: 'css', + c: 'clike', + java: 'clike', + scala: 'clike', + kotlin: 'clike', + 'c++': 'clike', + 'c#': 'clike', + csharp: 'clike', + go: 'go', + html: 'htmlmixed', + javascript: 'javascript', + json: {name: 'javascript', json: true}, + js: 'javascript', + php: 'php', + md: 'markdown', + mdown: 'markdown', + markdown: 'markdown', + nginx: 'nginx', + powershell: 'powershell', + py: 'python', + python: 'python', + ruby: 'ruby', + rb: 'ruby', + shell: 'shell', + bash: 'shell', + toml: 'toml', + sql: 'sql', + xml: 'xml', + yaml: 'yaml', + yml: 'yaml', +}; + module.exports.highlight = function() { let codeBlocks = document.querySelectorAll('.page-content pre'); for (let i = 0; i < codeBlocks.length; i++) { + let innerCodeElem = codeBlocks[i].querySelector('code[class^=language-]'); + let mode = ''; + if (innerCodeElem !== null) { + let langName = innerCodeElem.className.replace('language-', ''); + if (typeof modeMap[langName] !== 'undefined') mode = modeMap[langName]; + } codeBlocks[i].innerHTML = codeBlocks[i].innerHTML.replace(//gi ,'\n'); let content = codeBlocks[i].textContent; + console.log('MODE', mode); CodeMirror(function(elt) { codeBlocks[i].parentNode.replaceChild(elt, codeBlocks[i]); }, { value: content, - mode: "", + mode: mode, lineNumbers: true, theme: 'base16-light', readOnly: true diff --git a/resources/assets/js/directives.js b/resources/assets/js/directives.js index 221e18b0e..9a38add9a 100644 --- a/resources/assets/js/directives.js +++ b/resources/assets/js/directives.js @@ -399,7 +399,7 @@ module.exports = function (ngApp, events) { // Handle image upload and add image into markdown content function uploadImage(file) { - if (file.type.indexOf('image') !== 0) return; + if (file === null || !file.type.indexOf('image') !== 0) return; let formData = new FormData(); let ext = 'png'; let xhr = new XMLHttpRequest();