diff options
Diffstat (limited to 'packages/gitbook-markdown/lib/page.js')
-rw-r--r-- | packages/gitbook-markdown/lib/page.js | 31 |
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) { |