diff options
author | Samy Pessé <samypesse@gmail.com> | 2015-03-23 10:31:48 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2015-03-23 10:31:48 +0100 |
commit | 7d9dc08a382d2fb82074aa0ca7544c8929261a0e (patch) | |
tree | 1e3e3131f11ededaf4ad456a770549a05add2d2c /lib/utils/code.js | |
parent | a836bdedb4ebb3428032d9d1637c31f62d238c44 (diff) | |
download | gitbook-7d9dc08a382d2fb82074aa0ca7544c8929261a0e.zip gitbook-7d9dc08a382d2fb82074aa0ca7544c8929261a0e.tar.gz gitbook-7d9dc08a382d2fb82074aa0ca7544c8929261a0e.tar.bz2 |
Highlight codeblocks in gitbook instead than the parsers
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 +}; |