summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-markdown/lib/page.js
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@gmail.com>2015-03-12 19:30:07 +0100
committerSamy Pessé <samypesse@gmail.com>2016-12-22 15:00:39 +0100
commit46fd9f8a53a680a3d1ce156c71d061d057ea4e67 (patch)
treed1d014fbfe8798c0d79d34b4e656240a58e26b26 /packages/gitbook-markdown/lib/page.js
parent3d6414d2d1c41907c5a1ccd47b2d6229c1b393dc (diff)
downloadgitbook-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.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) {