mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-04-25 13:44:05 +08:00
Added code highlighting syntax modes
This commit is contained in:
parent
0528e98d9c
commit
2060cdb931
@ -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(/<br\s*[\/]?>/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
|
||||
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user