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…
	
		Reference in New Issue