summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-markdown/lib
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@gmail.com>2015-03-12 20:05:48 +0100
committerSamy Pessé <samypesse@gmail.com>2016-12-22 15:00:40 +0100
commit82910ed2d0abd5c4c1133d41c516b3064818fd3a (patch)
treed623c1c4c4f8b5ded0425aa8aab03c386364bb6e /packages/gitbook-markdown/lib
parent0746b4e716866bfaf979b385e7d65d2d2abea7f6 (diff)
downloadgitbook-82910ed2d0abd5c4c1133d41c516b3064818fd3a.zip
gitbook-82910ed2d0abd5c4c1133d41c516b3064818fd3a.tar.gz
gitbook-82910ed2d0abd5c4c1133d41c516b3064818fd3a.tar.bz2
Escape inline code blocks now
Diffstat (limited to 'packages/gitbook-markdown/lib')
-rw-r--r--packages/gitbook-markdown/lib/page.js29
1 files changed, 24 insertions, 5 deletions
diff --git a/packages/gitbook-markdown/lib/page.js b/packages/gitbook-markdown/lib/page.js
index d98bb72..603f122 100644
--- a/packages/gitbook-markdown/lib/page.js
+++ b/packages/gitbook-markdown/lib/page.js
@@ -17,16 +17,35 @@ function combine(nodes) {
return _.pluck(nodes, 'raw').join('');
}
+function escapeCodeElement(el) {
+ if(el.type == 'code') {
+ el.raw = escape(el.raw);
+ }
+ return el;
+}
+
function preparePage(src) {
- var lexed = annotate(src);
+ var lexed = annotate.blocks(src);
+
+ var escaped = lexed
// Escape code blocks
- var escaped = lexed.map(function(el) {
- if(el.type == 'code') {
- el.raw = escape(el.raw);
+ .map(escapeCodeElement)
+ // Escape inline code blocks
+ .map(function(el) {
+ // Only escape paragraphs and headings
+ if(!(el.type == 'paragraph' || el.type == 'heading')) {
+ return el;
}
+
+ // Escape inline code blocks
+ var newInline = annotate.inline(el.raw).map(escapeCodeElement);
+
+ // Change raw source code
+ el.raw = combine(newInline);
+
return el;
- })
+ });
return combine(escaped);
}