summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-markdown/lib/toHTML.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gitbook-markdown/lib/toHTML.js')
-rw-r--r--packages/gitbook-markdown/lib/toHTML.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/packages/gitbook-markdown/lib/toHTML.js b/packages/gitbook-markdown/lib/toHTML.js
new file mode 100644
index 0000000..c40c545
--- /dev/null
+++ b/packages/gitbook-markdown/lib/toHTML.js
@@ -0,0 +1,57 @@
+var _ = require('lodash');
+var kramed = require('kramed');
+
+/**
+ Get renderer for kramed with correct configuration
+
+ @return {kramed.Renderer}
+*/
+function getRenderer() {
+ return new kramed.Renderer({
+ langPrefix: 'lang-',
+ smartypants: false,
+ headerPrefix: '',
+ headerAutoId: false,
+ xhtml: false
+ });
+}
+
+/**
+ Get options for markdown parsing
+
+ @return {Object}
+*/
+function getOption() {
+ return _.extend({}, kramed.defaults, {
+ mathjax: false
+ });
+}
+
+/**
+ Convert Markdown block to HTML
+
+ @param {String} src (markdown)
+ @return {String} (html)
+*/
+function convertMdToHTMLBlock(src) {
+ var options = _.extend(getOption(), {
+ renderer: getRenderer()
+ });
+
+ return kramed(src, options);
+}
+
+/**
+ Convert Markdown inline to HTML
+
+ @param {String} src (markdown)
+ @return {String} (html)
+*/
+function convertMdToHTMLInline(src) {
+ return kramed.inlineLexer(src, getOption(), getRenderer());
+}
+
+module.exports = {
+ block: convertMdToHTMLBlock,
+ inline: convertMdToHTMLInline
+};