diff options
author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2015-03-12 19:30:07 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-12-22 15:00:39 +0100 |
commit | 46fd9f8a53a680a3d1ce156c71d061d057ea4e67 (patch) | |
tree | d1d014fbfe8798c0d79d34b4e656240a58e26b26 /packages/gitbook-markdown/lib/page.js | |
parent | 3d6414d2d1c41907c5a1ccd47b2d6229c1b393dc (diff) | |
download | gitbook-46fd9f8a53a680a3d1ce156c71d061d057ea4e67.zip gitbook-46fd9f8a53a680a3d1ce156c71d061d057ea4e67.tar.gz gitbook-46fd9f8a53a680a3d1ce156c71d061d057ea4e67.tar.bz2 |
Replace markdown-renderer with annotater
Handle blocks for now
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) { |