front-matter-markdown
Version:
get the config and toc object from the markdown string.
67 lines (56 loc) • 1.48 kB
JavaScript
(function() {
var AstBuilder, isArray, renderHandlerArgs;
renderHandlerArgs = {
code: ['code', 'lang', 'escaped', 'fenced'],
blockquote: ['quote'],
html: ['html'],
heading: ['text', 'level', 'raw'],
hr: [],
list: ['body', 'ordered'],
listitem: ['text'],
paragraph: ['text'],
table: ['header', 'body'],
tablerow: ['content'],
tablecell: ['content', 'flags'],
strong: ['text'],
em: ['text'],
codespan: ['text'],
br: [],
del: ['text'],
link: ['href', 'title', 'text'],
image: ['href', 'title', 'text'],
footnote: ['refname', 'text'],
math: ['content', 'language', 'visible']
};
isArray = require('util-ex/lib/is/type/array');
module.exports = AstBuilder = (function() {
var k, makeHandler, v;
function AstBuilder() {}
makeHandler = function(type, args) {
return function() {
var i, result, v;
result = {
type: type
};
i = -1;
while (++i < args.length) {
v = arguments[i];
if (v == null) {
continue;
}
if (isArray(v) && v.length === 1) {
v = v[0];
}
result[args[i]] = v;
}
return result;
};
};
for (k in renderHandlerArgs) {
v = renderHandlerArgs[k];
AstBuilder.prototype[k] = makeHandler(k, v);
}
return AstBuilder;
})();
}).call(this);
//# sourceMappingURL=ast-builder.js.map