summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2014-03-31 12:16:16 -0700
committerSamy Pessé <samypesse@gmail.com>2014-03-31 12:16:16 -0700
commit77a4c1042c7c13327641fb057c3c203cbf868782 (patch)
treeacffe873bdf71e8dc89e973bc41ef5a30be63533 /lib
parent6df59745b1e32535bc529f97d3c752afac50095d (diff)
parent89593f46ab0c7dddab8414c5da55f0faeb3e61a4 (diff)
downloadgitbook-77a4c1042c7c13327641fb057c3c203cbf868782.zip
gitbook-77a4c1042c7c13327641fb057c3c203cbf868782.tar.gz
gitbook-77a4c1042c7c13327641fb057c3c203cbf868782.tar.bz2
Merge branch 'master' of https://github.com/GitbookIO/gitbook
Diffstat (limited to 'lib')
-rw-r--r--lib/parse/page.js9
-rw-r--r--lib/parse/renderer.js27
-rw-r--r--lib/parse/summary.js7
3 files changed, 41 insertions, 2 deletions
diff --git a/lib/parse/page.js b/lib/parse/page.js
index 047f3e4..b1e4332 100644
--- a/lib/parse/page.js
+++ b/lib/parse/page.js
@@ -1,6 +1,8 @@
var _ = require('lodash');
var marked = require('marked');
+var renderer = require('./renderer');
+
// Split a page up into sections (lesson, exercises, ...)
function splitSections(nodes) {
@@ -49,10 +51,15 @@ function parsePage(src) {
// marked's Render expects this, we don't use it yet
section.links = {};
+ // Build options using defaults and our custom renderer
+ var options = _.extend({}, marked.defaults, {
+ renderer: renderer()
+ });
+
// Render normal pages
return {
type: section.type,
- content: marked.parser(section)
+ content: marked.parser(section, options)
};
})
.value();
diff --git a/lib/parse/renderer.js b/lib/parse/renderer.js
new file mode 100644
index 0000000..66aad46
--- /dev/null
+++ b/lib/parse/renderer.js
@@ -0,0 +1,27 @@
+var inherits = require('util').inherits;
+
+var marked = require('marked');
+
+
+function GitBookRenderer(options) {
+ if(!(this instanceof GitBookRenderer)) {
+ return new GitBookRenderer(options);
+ }
+ GitBookRenderer.super_.call(this, options);
+}
+inherits(GitBookRenderer, marked.Renderer);
+
+
+GitBookRenderer.prototype.link = function(href, title, text) {
+ // Replace .md extensions by .html
+ return GitBookRenderer.super_.prototype.link.call(
+ this,
+ href.replace(/\.md$/, '.html'),
+ title,
+ text
+ );
+};
+
+
+// Exports
+module.exports = GitBookRenderer;
diff --git a/lib/parse/summary.js b/lib/parse/summary.js
index 8787554..f021401 100644
--- a/lib/parse/summary.js
+++ b/lib/parse/summary.js
@@ -76,7 +76,12 @@ function parseTitle(src) {
return {
title: matches[1],
- path: matches[2],
+
+ // Replace .md references with .html
+ path: matches[2].replace(/\.md$/, '.html'),
+
+ // Original, non normalized path
+ _path: matches[2],
};
}