summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-markdown/lib/page.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gitbook-markdown/lib/page.js')
-rw-r--r--packages/gitbook-markdown/lib/page.js31
1 files changed, 18 insertions, 13 deletions
diff --git a/packages/gitbook-markdown/lib/page.js b/packages/gitbook-markdown/lib/page.js
index 5876beb..d98bb72 100644
--- a/packages/gitbook-markdown/lib/page.js
+++ b/packages/gitbook-markdown/lib/page.js
@@ -3,27 +3,32 @@ var kramed = require('kramed');
var hljs = require('highlight.js');
var lnormalize = require('./utils/lang').normalize;
-var mdRenderer = require('kramed-markdown-renderer');
+var annotate = require('./annotate');
var RAW_START = "{% raw %}";
var RAW_END = "{% endraw %}";
-function preparePage(src) {
- var renderer = mdRenderer();
+function escape(str) {
+ return RAW_START + str + RAW_END;
+}
- var escape = function(func, code, lang, escaped) {
- return RAW_START+func(code, lang, escaped)+RAW_END;
- };
+// Combines annotated nodes
+function combine(nodes) {
+ return _.pluck(nodes, 'raw').join('');
+}
- renderer.code = _.wrap(renderer.code, escape);
- renderer.codespan = _.wrap(renderer.codespan, escape);
+function preparePage(src) {
+ var lexed = annotate(src);
- var options = _.extend({}, kramed.defaults, {
- renderer: renderer,
- escape: false
- });
+ // Escape code blocks
+ var escaped = lexed.map(function(el) {
+ if(el.type == 'code') {
+ el.raw = escape(el.raw);
+ }
+ return el;
+ })
- return kramed(src, options);
+ return combine(escaped);
}
function parsePage(src) {