const showdown = require('showdown'); const hljs = require('highlightjs'); var decodeHtml = require("html-encoder-decoder").decode; function showdownHighlight() { return [{ type: "output", filter: function filter(text: any, converter: any, options: any) { var left = "
]*>",
right = "
",
flags = "g",
replacement = function replacement(wholeMatch: any, match: any, left: any, right: any) {
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 const convertor = new showdown.Converter({
extensions: [showdownHighlight]
});