@diplodoc/transform
Version:
A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML
29 lines • 1.09 kB
JavaScript
const utils_1 = require("markdown-it/lib/common/utils");
module.exports = function makeHighlight(langs = {}) {
try {
// Important require.
// Because we want to have a posibility to run in projects without hljs dependency
const hljs = require('highlight.js');
Object.keys(langs).forEach((lang) => {
hljs.registerLanguage(lang, langs[lang]);
});
return function highlight(str, lang) {
let highlightedStr;
const classNames = ['hljs'];
if (lang && hljs.getLanguage(lang)) {
classNames.push(lang);
try {
highlightedStr = hljs.highlight(lang, str, true).value;
}
catch (_) { }
}
highlightedStr = highlightedStr || (0, utils_1.escapeHtml)(str);
return `<pre><code class="${classNames.join(' ')}">${highlightedStr}</code></pre>`;
};
}
catch (_a) {
return (str) => (0, utils_1.escapeHtml)(str);
}
};
//# sourceMappingURL=highlight.js.map
;