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