Normalize .md links to .html when rendering pages

This commit is contained in:
Aaron O'Mullan
2014-03-31 12:09:28 -07:00
parent 1d321207b0
commit 89593f46ab
2 changed files with 35 additions and 1 deletions
+8 -1
View File
@@ -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();
+27
View File
@@ -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;