summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-markdown/lib
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-03-18 10:21:57 +0100
committerSamy Pessé <samypesse@gmail.com>2016-12-22 15:00:54 +0100
commitea5cb56ecb445b9d2e8769fea8e2bf0007a023b8 (patch)
tree3584cc5c8f90e47999928ebede119c17159c4d1a /packages/gitbook-markdown/lib
parente2725296d3a044acc50f324ee399197a155027c7 (diff)
downloadgitbook-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.js8
-rw-r--r--packages/gitbook-markdown/lib/tohtml.js43
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
+};