Add glossary parser

This commit is contained in:
Aaron O'Mullan
2014-08-11 18:57:39 -07:00
parent 2a61c858e4
commit 323facbdc8
2 changed files with 37 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
var _ = require('lodash');
var kramed = require('kramed');
// Get all the pairs of header + paragraph in a list of nodes
function groups(nodes) {
// A list of next nodes
var next = nodes.slice(1).concat(null);
return _.reduce(nodes, function(accu, node, idx) {
// Skip
if(!(
node.type === 'heading' &&
(next[idx] && next[idx].type === 'paragraph')
)) {
return accu;
}
// Add group
accu.push([
node,
next[idx]
]);
return accu;
}, []);
}
function parseGlossary(src) {
var nodes = kramed.lexer(src);
var entries = groups(nodes);
return entries;
}
module.exports = parseGlossary;
+1
View File
@@ -1,5 +1,6 @@
module.exports = {
summary: require('./summary'),
glossary: require('./glossary'),
langs: require('./langs'),
page: require('./page'),
lex: require('./lex'),