summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-markdown/lib/page.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-04-02 15:01:49 +0200
committerSamy Pessé <samypesse@gmail.com>2016-12-22 15:00:44 +0100
commitd9bbc2fe0a280d05795594e49c22413a0b5b71c4 (patch)
tree5bcbf1a33a75666a21c89a5b646d9b55eec6258f /packages/gitbook-markdown/lib/page.js
parente572570c43beee7b2df5aa562662290010bf2ab7 (diff)
downloadgitbook-d9bbc2fe0a280d05795594e49c22413a0b5b71c4.zip
gitbook-d9bbc2fe0a280d05795594e49c22413a0b5b71c4.tar.gz
gitbook-d9bbc2fe0a280d05795594e49c22413a0b5b71c4.tar.bz2
Don't escape code block if already in escaped block
Diffstat (limited to 'packages/gitbook-markdown/lib/page.js')
-rw-r--r--packages/gitbook-markdown/lib/page.js20
1 files changed, 14 insertions, 6 deletions
diff --git a/packages/gitbook-markdown/lib/page.js b/packages/gitbook-markdown/lib/page.js
index 742d8f9..9b0f37f 100644
--- a/packages/gitbook-markdown/lib/page.js
+++ b/packages/gitbook-markdown/lib/page.js
@@ -15,20 +15,28 @@ 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.blocks(src);
+ var levelRaw = 0;
+ var escapeCodeElement = function(el) {
+ if (el.type == 'code' && levelRaw == 0) {
+ el.raw = escape(el.raw);
+ } else if (el.type == 'rawStart') {
+ levelRaw = levelRaw + 1;
+ } else if (el.type == 'rawStart') {
+ levelRaw = levelRaw - 1;
+ }
+ return el;
+ };
var escaped = lexed
+
// Escape code blocks
.map(escapeCodeElement)
+
// Escape inline code blocks
.map(function(el) {
// Only escape paragraphs and headings