Add new gitbook-markdown and gitbook-asciidoc

This commit is contained in:
Samy Pessé
2016-02-20 16:02:51 +01:00
parent 89378c3883
commit a22539a91e
7 changed files with 78 additions and 5 deletions
+1 -1
View File
@@ -1,7 +1,6 @@
var _ = require('lodash');
var path = require('path');
var Ignore = require('ignore');
var parsers = require('gitbook-parsers');
var Config = require('./config');
var Readme = require('./backbone/readme');
@@ -13,6 +12,7 @@ var pathUtil = require('./utils/path');
var error = require('./utils/error');
var Promise = require('./utils/promise');
var Logger = require('./utils/logger');
var parsers = require('./parsers');
/*
+1 -1
View File
@@ -1,9 +1,9 @@
var _ = require('lodash');
var path = require('path');
var chokidar = require('chokidar');
var parsers = require('gitbook-parsers');
var Promise = require('../utils/promise');
var parsers = require('../parsers');
// Watch a folder and resolve promise once a file is modified
function watch(dir) {
+1 -1
View File
@@ -1,11 +1,11 @@
var _ = require('lodash');
var path = require('path');
var parsers = require('gitbook-parsers');
var direction = require('direction');
var error = require('../utils/error');
var pathUtil = require('../utils/path');
var location = require('../utils/location');
var parsers = require('../parsers');
var HTMLPipeline = require('./html');
/*
+60
View File
@@ -0,0 +1,60 @@
var _ = require('lodash');
var path = require('path');
var markdownParser = require('gitbook-markdown');
var asciidocParser = require('gitbook-asciidoc');
var Promise = require('./utils/promise');
// This list is ordered by priority of parsers to use
var PARSERS = [
createParser(markdownParser, {
name: 'markdown',
extensions: ['.md', '.markdown', '.mdown']
}),
createParser(asciidocParser, {
name: 'asciidoc',
extensions: ['.adoc', '.asciidoc']
})
];
// Prepare and compose a parser
function createParser(parser, base) {
var nparser = base;
nparser.glossary = Promise.wrapfn(parser.glossary);
nparser.glossary.toText = Promise.wrapfn(parser.glossary.toText);
nparser.summary = Promise.wrapfn(parser.summary);
nparser.summary.toText = Promise.wrapfn(parser.summary.toText);
nparser.langs = Promise.wrapfn(parser.langs);
nparser.langs.toText = Promise.wrapfn(parser.langs.toText);
nparser.readme = Promise.wrapfn(parser.readme);
nparser.page = Promise.wrapfn(parser.page);
nparser.page.prepare = Promise.wrapfn(parser.page.prepare || _.identity);
return nparser;
}
// Return a specific parser according to an extension
function getParser(ext) {
return _.find(PARSERS, function(input) {
return input.name == ext || _.contains(input.extensions, ext);
});
}
// Return parser for a file
function getParserForFile(filename) {
return getParser(path.extname(filename));
}
module.exports = {
all: PARSERS,
extensions: _.flatten(_.pluck(PARSERS, 'extensions')),
get: getParser,
getForFile: getParserForFile
};
+1 -1
View File
@@ -1,11 +1,11 @@
var _ = require('lodash');
var path = require('path');
var nunjucks = require('nunjucks');
var parsers = require('gitbook-parsers');
var escapeStringRegexp = require('escape-string-regexp');
var Promise = require('../utils/promise');
var error = require('../utils/error');
var parsers = require('../parsers');
var defaultBlocks = require('./blocks');
var Loader = require('./loader');
+12
View File
@@ -43,8 +43,20 @@ function map(arr, iter) {
}, []);
}
// Wrap a fucntion in a promise
function wrap(func) {
return _.wrap(func, function(_func) {
var args = Array.prototype.slice.call(arguments, 1);
return Q()
.then(function() {
return _func.apply(null, args);
});
});
}
module.exports = Q;
module.exports.reduce = reduce;
module.exports.map = map;
module.exports.serie = serie;
module.exports.some = some;
module.exports.wrapfn = wrap;
+2 -1
View File
@@ -11,7 +11,8 @@
"resolve": "0.6.3",
"mkdirp": "0.5.1",
"error": "7.0.2",
"gitbook-parsers": "0.8.9",
"gitbook-markdown": "1.0.0",
"gitbook-asciidoc": "1.0.0",
"gitbook-plugin-highlight": "1.0.3",
"gitbook-plugin-sharing": "1.0.1",
"gitbook-plugin-search": "1.1.0",