Added code highlighting syntax modes

This commit is contained in:
Dan Brown 2017-06-17 12:41:18 +01:00
parent 0528e98d9c
commit 2060cdb931
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
2 changed files with 42 additions and 2 deletions

View File

@ -17,18 +17,58 @@ require('codemirror/mode/yaml/yaml');
const CodeMirror = require('codemirror'); 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() { module.exports.highlight = function() {
let codeBlocks = document.querySelectorAll('.page-content pre'); let codeBlocks = document.querySelectorAll('.page-content pre');
for (let i = 0; i < codeBlocks.length; i++) { 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(/<br\s*[\/]?>/gi ,'\n'); codeBlocks[i].innerHTML = codeBlocks[i].innerHTML.replace(/<br\s*[\/]?>/gi ,'\n');
let content = codeBlocks[i].textContent; let content = codeBlocks[i].textContent;
console.log('MODE', mode);
CodeMirror(function(elt) { CodeMirror(function(elt) {
codeBlocks[i].parentNode.replaceChild(elt, codeBlocks[i]); codeBlocks[i].parentNode.replaceChild(elt, codeBlocks[i]);
}, { }, {
value: content, value: content,
mode: "", mode: mode,
lineNumbers: true, lineNumbers: true,
theme: 'base16-light', theme: 'base16-light',
readOnly: true readOnly: true

View File

@ -399,7 +399,7 @@ module.exports = function (ngApp, events) {
// Handle image upload and add image into markdown content // Handle image upload and add image into markdown content
function uploadImage(file) { function uploadImage(file) {
if (file.type.indexOf('image') !== 0) return; if (file === null || !file.type.indexOf('image') !== 0) return;
let formData = new FormData(); let formData = new FormData();
let ext = 'png'; let ext = 'png';
let xhr = new XMLHttpRequest(); let xhr = new XMLHttpRequest();