commonmark
Version:
a strongly specified, highly compatible variant of Markdown
30 lines (27 loc) • 791 B
JavaScript
var commonmark = require('./lib/index.js');
var parser = new commonmark.Parser();
var doc = parser.parse("# Hi\n\nA [link](url). ok.");
var walker = doc.walker();
var event;
var html = function(raw) {
var node = new commonmark.Node('Html');
node.literal = raw;
return node;
}
while (event = walker.next()) {
if (event.node.type === 'Link' && !event.entering) {
var rawstart = html('<start>');
var rawend = html('<end>');
event.node.insertBefore(rawstart);
var child = event.node.firstChild;
while (child) {
nextchild = child.next;
event.node.insertBefore(child);
child = nextchild;
}
event.node.insertBefore(rawend);
event.node.unlink();
}
}
var renderer = new commonmark.HtmlRenderer();
console.log(renderer.render(doc));