var showdown = require('showdown'); var hljs = require('highlightjs'); var decodeHtml = require("html-encoder-decoder").decode; function showdownHighlight() { return [{ type: "output", filter: function filter(text, converter, options) { var left = "
]*>", right = "
", flags = "g", replacement = function replacement(wholeMatch, match, left, right) {
match = decodeHtml(match);
var lang = (left.match(/class=\"([^ \"]+)/) || [])[1];
console.log(left + hljs.highlight(lang, match).value + right);
if (lang) {
return left + hljs.highlight(lang, match).value + right;
}
else {
return left + hljs.highlightAuto(match).value + right;
}
};
return showdown.helper.replaceRecursiveRegExp(text, replacement, left, right, flags);
}
}];
}
;
export var convertor = new showdown.Converter({
extensions: [showdownHighlight]
});