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 | |
parent | e2725296d3a044acc50f324ee399197a155027c7 (diff) | |
download | gitbook-ea5cb56ecb445b9d2e8769fea8e2bf0007a023b8.zip gitbook-ea5cb56ecb445b9d2e8769fea8e2bf0007a023b8.tar.gz gitbook-ea5cb56ecb445b9d2e8769fea8e2bf0007a023b8.tar.bz2 |
Add support for inline renderer
Diffstat (limited to 'packages')
-rw-r--r-- | packages/gitbook-markdown/lib/page.js | 8 | ||||
-rw-r--r-- | packages/gitbook-markdown/lib/tohtml.js | 43 | ||||
-rw-r--r-- | packages/gitbook-markdown/package.json | 4 | ||||
-rw-r--r-- | packages/gitbook-markdown/test/inline.js | 11 |
4 files changed, 48 insertions, 18 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 +}; diff --git a/packages/gitbook-markdown/package.json b/packages/gitbook-markdown/package.json index dcf9ddf..1729777 100644 --- a/packages/gitbook-markdown/package.json +++ b/packages/gitbook-markdown/package.json @@ -6,9 +6,9 @@ "main": "lib/index.js", "dependencies": { "lodash": "^3.2.0", - "kramed": "0.5.5", + "kramed": "0.5.6", "kramed-text-renderer": "0.2.1", - "gitbook-html": "1.0.2" + "gitbook-html": "1.1.0" }, "devDependencies": { "mocha": "^2.3.3" diff --git a/packages/gitbook-markdown/test/inline.js b/packages/gitbook-markdown/test/inline.js new file mode 100644 index 0000000..4ed1006 --- /dev/null +++ b/packages/gitbook-markdown/test/inline.js @@ -0,0 +1,11 @@ +var fs = require('fs'); +var path = require('path'); +var assert = require('assert'); + +var inline = require('../').inline; + +describe('Inline', function () { + it('should render inline markdown', function() { + assert.equal(inline('Hello **World**').content, 'Hello <strong>World</strong>'); + }); +}); |