summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/gitbook-markdown/lib/page.js8
-rw-r--r--packages/gitbook-markdown/lib/tohtml.js43
-rw-r--r--packages/gitbook-markdown/package.json4
-rw-r--r--packages/gitbook-markdown/test/inline.js11
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>');
+ });
+});