do not highlight code blocks without lang specified by default

This commit is contained in:
Le Tan 2017-12-18 21:53:40 +08:00
parent 2373a0326e
commit f6cf98c827
5 changed files with 37 additions and 12 deletions

View File

@ -3,11 +3,15 @@ var placeholder = document.getElementById('placeholder');
// Use Marked to highlight code blocks in edit mode. // Use Marked to highlight code blocks in edit mode.
marked.setOptions({ marked.setOptions({
highlight: function(code, lang) { highlight: function(code, lang) {
if (lang && hljs.getLanguage(lang)) { if (lang) {
if (hljs.getLanguage(lang)) {
return hljs.highlight(lang, code).value; return hljs.highlight(lang, code).value;
} else { } else {
return hljs.highlightAuto(code).value; return hljs.highlightAuto(code).value;
} }
} else {
return code;
}
} }
}); });
@ -37,9 +41,11 @@ var updateHtml = function(html) {
} }
} }
if (listContainsRegex(code.classList, /language-.*/)) {
hljs.highlightBlock(code); hljs.highlightBlock(code);
} }
} }
}
addClassToCodeBlock(); addClassToCodeBlock();
renderCodeBlockLineNumber(); renderCodeBlockLineNumber();
@ -63,4 +69,3 @@ var highlightText = function(text, id, timeStamp) {
var html = marked(text); var html = marked(text);
content.highlightTextCB(html, id, timeStamp); content.highlightTextCB(html, id, timeStamp);
} }

View File

@ -44,11 +44,15 @@ var mdit = window.markdownit({
typographer: true, typographer: true,
langPrefix: 'lang-', langPrefix: 'lang-',
highlight: function(str, lang) { highlight: function(str, lang) {
if (lang && hljs.getLanguage(lang)) { if (lang) {
if (hljs.getLanguage(lang)) {
return hljs.highlight(lang, str).value; return hljs.highlight(lang, str).value;
} else { } else {
return hljs.highlightAuto(str).value; return hljs.highlightAuto(str).value;
} }
} else {
return str;
}
} }
}); });

View File

@ -844,3 +844,13 @@ var addClassToCodeBlock = function() {
} }
} }
}; };
var listContainsRegex = function(strs, exp) {
for (var i = 0, len = strs.length; i < len; ++i) {
if (exp.test(strs[i])) {
return true;
}
}
return false;
}

View File

@ -17,11 +17,15 @@ renderer.heading = function(text, level) {
// Highlight.js to highlight code block // Highlight.js to highlight code block
marked.setOptions({ marked.setOptions({
highlight: function(code, lang) { highlight: function(code, lang) {
if (lang && hljs.getLanguage(lang)) { if (lang) {
if (hljs.getLanguage(lang)) {
return hljs.highlight(lang, code).value; return hljs.highlight(lang, code).value;
} else { } else {
return hljs.highlightAuto(code).value; return hljs.highlightAuto(code).value;
} }
} else {
return code;
}
} }
}); });

View File

@ -60,7 +60,9 @@ var highlightCodeBlocks = function(doc, enableMermaid, enableFlowchart) {
} if (enableFlowchart && code.classList.contains('language-flowchart')) { } if (enableFlowchart && code.classList.contains('language-flowchart')) {
// Flowchart code block. // Flowchart code block.
continue; continue;
} else { }
if (listContainsRegex(code.classList, /language-.*/)) {
hljs.highlightBlock(code); hljs.highlightBlock(code);
} }
} }