diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-03-18 10:21:57 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-12-22 15:00:54 +0100 |
commit | ea5cb56ecb445b9d2e8769fea8e2bf0007a023b8 (patch) | |
tree | 3584cc5c8f90e47999928ebede119c17159c4d1a /packages/gitbook-markdown/lib | |
parent | e2725296d3a044acc50f324ee399197a155027c7 (diff) | |
download | gitbook-ea5cb56ecb445b9d2e8769fea8e2bf0007a023b8.zip gitbook-ea5cb56ecb445b9d2e8769fea8e2bf0007a023b8.tar.gz gitbook-ea5cb56ecb445b9d2e8769fea8e2bf0007a023b8.tar.bz2 |
Add support for inline renderer
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 +}; |