summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-markdown/lib/page.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-01-19 18:08:20 +0100
committerSamy Pessé <samypesse@gmail.com>2016-12-22 15:00:30 +0100
commit7256573a630f9a4c1da3532a6dc0e2cdbf411411 (patch)
tree29a12e6d9b2f962366f42b0928f404327335a20c /packages/gitbook-markdown/lib/page.js
parent0b3b135a3935a4f64843e673b70925d8495e271f (diff)
downloadgitbook-7256573a630f9a4c1da3532a6dc0e2cdbf411411.zip
gitbook-7256573a630f9a4c1da3532a6dc0e2cdbf411411.tar.gz
gitbook-7256573a630f9a4c1da3532a6dc0e2cdbf411411.tar.bz2
Add basic parsing of markdown using kramed
Diffstat (limited to 'packages/gitbook-markdown/lib/page.js')
-rw-r--r--packages/gitbook-markdown/lib/page.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/packages/gitbook-markdown/lib/page.js b/packages/gitbook-markdown/lib/page.js
new file mode 100644
index 0000000..1adfcf8
--- /dev/null
+++ b/packages/gitbook-markdown/lib/page.js
@@ -0,0 +1,36 @@
+var Q = require('q');
+var _ = require('lodash');
+var kramed = require('kramed');
+var hljs = require('highlight.js');
+
+var lnormalize = require('./utils/lang').normalize;
+
+function parsePage(src) {
+ var options = _.extend({}, kramed.defaults, {
+ // Synchronous highlighting with highlight.js
+ highlight: function (code, lang) {
+ if(!lang) return code;
+
+ // Normalize lang
+ lang = lnormalize(lang);
+
+ try {
+ return hljs.highlight(lang, code).value;
+ } catch(e) { }
+
+ return code;
+ }
+ });
+
+ return {
+ sections: [
+ {
+ type: "normal",
+ content: kramed(src, options)
+ }
+ ]
+ };
+}
+
+// Exports
+module.exports = parsePage;