diff options
author | Samy Pessé <samypesse@gmail.com> | 2014-03-31 12:16:16 -0700 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2014-03-31 12:16:16 -0700 |
commit | 77a4c1042c7c13327641fb057c3c203cbf868782 (patch) | |
tree | acffe873bdf71e8dc89e973bc41ef5a30be63533 /lib | |
parent | 6df59745b1e32535bc529f97d3c752afac50095d (diff) | |
parent | 89593f46ab0c7dddab8414c5da55f0faeb3e61a4 (diff) | |
download | gitbook-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.js | 9 | ||||
-rw-r--r-- | lib/parse/renderer.js | 27 | ||||
-rw-r--r-- | lib/parse/summary.js | 7 |
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], }; } |