diff options
Diffstat (limited to 'lib/utils/code.js')
-rw-r--r-- | lib/utils/code.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/utils/code.js b/lib/utils/code.js new file mode 100644 index 0000000..0d98869 --- /dev/null +++ b/lib/utils/code.js @@ -0,0 +1,36 @@ +var hljs = require('highlight.js'); + +var MAP = { + 'py': 'python', + 'js': 'javascript', + 'json': 'javascript', + 'rb': 'ruby', + 'csharp': 'cs', +}; + +function normalize(lang) { + if(!lang) { return null; } + + var lower = lang.toLowerCase(); + return MAP[lower] || lower; +} + +function highlight(lang, code) { + if(!lang) return code; + + // Normalize lang + lang = normalize(lang); + + try { + return hljs.highlight(lang, code).value; + } catch(e) { } + + return code; +} + +// Exports +module.exports = { + highlight: highlight, + normalize: normalize, + MAP: MAP +}; |