summaryrefslogtreecommitdiffstats
path: root/lib/utils/code.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-03-23 10:31:48 +0100
committerSamy Pessé <samypesse@gmail.com>2015-03-23 10:31:48 +0100
commit7d9dc08a382d2fb82074aa0ca7544c8929261a0e (patch)
tree1e3e3131f11ededaf4ad456a770549a05add2d2c /lib/utils/code.js
parenta836bdedb4ebb3428032d9d1637c31f62d238c44 (diff)
downloadgitbook-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.js36
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
+};