summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-05-02 16:14:39 +0200
committerSamy Pessé <samypesse@gmail.com>2016-12-22 15:00:55 +0100
commitb918cbcb0305bb5269d5a7ee7513b4e32317677b (patch)
tree85430e1258b026ce433899ab4f86811a8b24c71f
parent157446e9286e0ccab6cea1924e22f696c4ebc698 (diff)
downloadgitbook-b918cbcb0305bb5269d5a7ee7513b4e32317677b.zip
gitbook-b918cbcb0305bb5269d5a7ee7513b4e32317677b.tar.gz
gitbook-b918cbcb0305bb5269d5a7ee7513b4e32317677b.tar.bz2
Adapt for gitbook-html@1.1.0
-rw-r--r--packages/gitbook-markdown/lib/index.js8
-rw-r--r--packages/gitbook-markdown/lib/page.js22
-rw-r--r--packages/gitbook-markdown/lib/tohtml.js26
-rw-r--r--packages/gitbook-markdown/lib/tomarkdown.js8
-rw-r--r--packages/gitbook-markdown/package.json2
-rw-r--r--packages/gitbook-markdown/test/langs.js4
-rw-r--r--packages/gitbook-markdown/test/summary.js16
7 files changed, 65 insertions, 21 deletions
diff --git a/packages/gitbook-markdown/lib/index.js b/packages/gitbook-markdown/lib/index.js
index 1f575a5..49edee6 100644
--- a/packages/gitbook-markdown/lib/index.js
+++ b/packages/gitbook-markdown/lib/index.js
@@ -1,8 +1,10 @@
-var htmlParser = require('gitbook-html');
+var HTMLParser = require('gitbook-html');
var toHTML = require('./tohtml');
-var toMarkdown = require('./tomarkdown');
+var toMarkdown = require('./toMarkdown');
var page = require('./page');
-module.exports = htmlParser.createParser(toHTML, toMarkdown);
+module.exports = HTMLParser.createParser(toHTML, toMarkdown);
+
+// Add the custom page escaping
module.exports.page.prepare = page.prepare;
diff --git a/packages/gitbook-markdown/lib/page.js b/packages/gitbook-markdown/lib/page.js
index bdb359e..5bb842e 100644
--- a/packages/gitbook-markdown/lib/page.js
+++ b/packages/gitbook-markdown/lib/page.js
@@ -5,17 +5,33 @@ var annotate = require('kramed/lib/annotate/');
var RAW_START = '{% raw %}';
var RAW_END = '{% endraw %}';
-// Escape a code block using raw blocks
+/**
+ Escape a code block's content using raw blocks
+
+ @param {String}
+ @return {String}
+*/
function escape(str) {
return RAW_START + str + RAW_END;
}
-// Combines annotated nodes
+/**
+ Combines annotated nodes
+
+ @param {Array}
+ @return {String}
+*/
function combine(nodes) {
return _.pluck(nodes, 'raw').join('');
}
-// Add templating "raw" to code blocks
+/**
+ Add templating "raw" to code blocks to
+ avoid nunjucks processing their content.
+
+ @param {String} src
+ @return {String}
+*/
function preparePage(src) {
var lexed = annotate.blocks(src);
var levelRaw = 0;
diff --git a/packages/gitbook-markdown/lib/tohtml.js b/packages/gitbook-markdown/lib/tohtml.js
index 628ebce..c40c545 100644
--- a/packages/gitbook-markdown/lib/tohtml.js
+++ b/packages/gitbook-markdown/lib/tohtml.js
@@ -1,7 +1,11 @@
var _ = require('lodash');
var kramed = require('kramed');
-// Get renderer for kramed
+/**
+ Get renderer for kramed with correct configuration
+
+ @return {kramed.Renderer}
+*/
function getRenderer() {
return new kramed.Renderer({
langPrefix: 'lang-',
@@ -12,14 +16,23 @@ function getRenderer() {
});
}
-// Get options for markdown parsing
+/**
+ Get options for markdown parsing
+
+ @return {Object}
+*/
function getOption() {
return _.extend({}, kramed.defaults, {
mathjax: false
});
}
-// Convert Markdown to HTML
+/**
+ Convert Markdown block to HTML
+
+ @param {String} src (markdown)
+ @return {String} (html)
+*/
function convertMdToHTMLBlock(src) {
var options = _.extend(getOption(), {
renderer: getRenderer()
@@ -28,7 +41,12 @@ function convertMdToHTMLBlock(src) {
return kramed(src, options);
}
-// Convert Markdown to HTML (inline)
+/**
+ Convert Markdown inline to HTML
+
+ @param {String} src (markdown)
+ @return {String} (html)
+*/
function convertMdToHTMLInline(src) {
return kramed.inlineLexer(src, getOption(), getRenderer());
}
diff --git a/packages/gitbook-markdown/lib/tomarkdown.js b/packages/gitbook-markdown/lib/tomarkdown.js
index 5bee4e0..aab642c 100644
--- a/packages/gitbook-markdown/lib/tomarkdown.js
+++ b/packages/gitbook-markdown/lib/tomarkdown.js
@@ -4,6 +4,10 @@ function ns(s, n) {
return Array(n + 1).join(s);
}
+/*
+ This module provides markup rules for gitbook-html
+ These rules are being used to generate SUMMARY/GLOSSARY/LANGS
+*/
module.exports = {
onTitleStart: function(level) {
return ns('#', level) + ' ';
@@ -39,5 +43,9 @@ module.exports = {
onListItemEnd: function() {
return '';
},
+
+ onHR: function() {
+ return '-----';
+ }
};
diff --git a/packages/gitbook-markdown/package.json b/packages/gitbook-markdown/package.json
index cb5e8b4..9dc78d9 100644
--- a/packages/gitbook-markdown/package.json
+++ b/packages/gitbook-markdown/package.json
@@ -8,7 +8,7 @@
"lodash": "^3.2.0",
"kramed": "0.5.6",
"kramed-text-renderer": "0.2.1",
- "gitbook-html": "1.1.0"
+ "gitbook-html": "1.2.0"
},
"devDependencies": {
"mocha": "^2.3.3"
diff --git a/packages/gitbook-markdown/test/langs.js b/packages/gitbook-markdown/test/langs.js
index bb75d11..3c2f108 100644
--- a/packages/gitbook-markdown/test/langs.js
+++ b/packages/gitbook-markdown/test/langs.js
@@ -14,10 +14,10 @@ describe('Languages parsing', function () {
it('should detect paths and titles', function() {
assert.equal(LEXED.length, 2);
- assert.equal(LEXED[0].path,'en/');
+ assert.equal(LEXED[0].ref,'en/');
assert.equal(LEXED[0].title,'English');
- assert.equal(LEXED[1].path,'fr/');
+ assert.equal(LEXED[1].ref,'fr/');
assert.equal(LEXED[1].title,'French');
});
diff --git a/packages/gitbook-markdown/test/summary.js b/packages/gitbook-markdown/test/summary.js
index 22800d4..31dbff9 100644
--- a/packages/gitbook-markdown/test/summary.js
+++ b/packages/gitbook-markdown/test/summary.js
@@ -32,11 +32,11 @@ describe('Summary parsing', function () {
});
it('should detect paths and titles', function() {
- assert(PART.articles[0].path);
- assert(PART.articles[1].path);
- assert(PART.articles[2].path);
- assert(PART.articles[3].path);
- assert.equal(PART.articles[4].path, null);
+ assert(PART.articles[0].ref);
+ assert(PART.articles[1].ref);
+ assert(PART.articles[2].ref);
+ assert(PART.articles[3].ref);
+ assert.equal(PART.articles[4].ref, null);
assert(PART.articles[0].title);
assert(PART.articles[1].title);
@@ -46,9 +46,9 @@ describe('Summary parsing', function () {
});
it('should normalize paths from .md', function() {
- assert.equal(PART.articles[0].path,'chapter-1/README.md');
- assert.equal(PART.articles[1].path,'chapter-2/README.md');
- assert.equal(PART.articles[2].path,'chapter-3/README.md');
+ assert.equal(PART.articles[0].ref, 'chapter-1/README.md');
+ assert.equal(PART.articles[1].ref, 'chapter-2/README.md');
+ assert.equal(PART.articles[2].ref, 'chapter-3/README.md');
});
it('should part parts', function() {