diff options
Diffstat (limited to 'packages/gitbook-markdown/lib')
-rw-r--r-- | packages/gitbook-markdown/lib/page.js | 8 | ||||
-rw-r--r-- | packages/gitbook-markdown/lib/tohtml.js | 43 |
2 files changed, 35 insertions, 16 deletions
diff --git a/packages/gitbook-markdown/lib/page.js b/packages/gitbook-markdown/lib/page.js index d8a5119..bdb359e 100644 --- a/packages/gitbook-markdown/lib/page.js +++ b/packages/gitbook-markdown/lib/page.js @@ -5,6 +5,7 @@ var annotate = require('kramed/lib/annotate/'); var RAW_START = '{% raw %}'; var RAW_END = '{% endraw %}'; +// Escape a code block using raw blocks function escape(str) { return RAW_START + str + RAW_END; } @@ -19,7 +20,7 @@ function preparePage(src) { var lexed = annotate.blocks(src); var levelRaw = 0; - var escapeCodeElement = function(el) { + function escapeCodeElement(el) { if (el.type == 'code' && levelRaw == 0) { el.raw = escape(el.raw); } else if (el.type == 'tplexpr') { @@ -31,10 +32,9 @@ function preparePage(src) { } } return el; - }; + } - var escaped = lexed - .map(function(el) { + var escaped = _.map(lexed, function(el) { // Only escape paragraphs and headings if(el.type == 'paragraph' || el.type == 'heading') { var line = annotate.inline(el.raw); diff --git a/packages/gitbook-markdown/lib/tohtml.js b/packages/gitbook-markdown/lib/tohtml.js index 9647363..628ebce 100644 --- a/packages/gitbook-markdown/lib/tohtml.js +++ b/packages/gitbook-markdown/lib/tohtml.js @@ -1,20 +1,39 @@ var _ = require('lodash'); var kramed = require('kramed'); -// Convert markdown to HTML -function convertMdToHTML(src) { - var options = _.extend({}, kramed.defaults, { - mathjax: false, - renderer: new kramed.Renderer({ - langPrefix: 'lang-', - smartypants: false, - headerPrefix: '', - headerAutoId: false, - xhtml: false - }) +// Get renderer for kramed +function getRenderer() { + return new kramed.Renderer({ + langPrefix: 'lang-', + smartypants: false, + headerPrefix: '', + headerAutoId: false, + xhtml: false + }); +} + +// Get options for markdown parsing +function getOption() { + return _.extend({}, kramed.defaults, { + mathjax: false + }); +} + +// Convert Markdown to HTML +function convertMdToHTMLBlock(src) { + var options = _.extend(getOption(), { + renderer: getRenderer() }); return kramed(src, options); } -module.exports = convertMdToHTML; +// Convert Markdown to HTML (inline) +function convertMdToHTMLInline(src) { + return kramed.inlineLexer(src, getOption(), getRenderer()); +} + +module.exports = { + block: convertMdToHTMLBlock, + inline: convertMdToHTMLInline +}; |