This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/lib/highlight-syntax.js
2020-03-12 13:29:55 -04:00

36 lines
812 B
JavaScript

/*global hljs:true */
let _moreLanguages = [];
import loadScript from "discourse/lib/load-script";
export default function highlightSyntax($elem) {
const selector = Discourse.SiteSettings.autohighlight_all_code
? "pre code"
: "pre code[class]",
path = Discourse.HighlightJSPath;
if (!path) {
return;
}
$(selector, $elem).each(function(i, e) {
$(e).removeClass("lang-auto");
loadScript(path).then(() => {
customHighlightJSLanguages();
hljs.highlightBlock(e);
});
});
}
export function registerHighlightJSLanguage(name, fn) {
_moreLanguages.push({ name: name, fn: fn });
}
function customHighlightJSLanguages() {
_moreLanguages.forEach(l => {
if (hljs.getLanguage(l.name) === undefined) {
hljs.registerLanguage(l.name, l.fn);
}
});
}