@ -9,6 +9,22 @@
// Set langs to the langs that are included by default (for now: 'common set' on CDN)
// Set langs to the langs that are included by default (for now: 'common set' on CDN)
var langs = [];
var langs = [];
// Custom aliasmap
var aliasmap = {
"elisp" : "lisp",
"emacs-lisp" : "lisp",
"c" : "cpp",
"cc" : "cpp",
"h" : "cpp",
"c++" : "cpp",
"h++" : "cpp",
"hpp" : "cpp",
"hh" : "cpp",
"hxx" : "cpp",
"cxx" : "cpp",
"sh" : "shell"
};
// Given a set of nodes, run highlighting on them
// Given a set of nodes, run highlighting on them
function highlight(nodes) {
function highlight(nodes) {
for (i=0; i < nodes.length; i++) {
for (i=0; i < nodes.length; i++) {
@ -22,7 +38,7 @@
var sc = document.createElement('script');
var sc = document.createElement('script');
sc.src = uri;
sc.src = uri;
sc.async = false; // critical?
sc.async = false; // critical?
// Set callback on last script
// Set callback on last script
if (uris.indexOf(uri) == uris.length-1) {
if (uris.indexOf(uri) == uris.length-1) {
// Set callback regardless
// Set callback regardless
// so we're sure it will run if last element had error
// so we're sure it will run if last element had error
@ -46,6 +62,8 @@
// Check what we need to load
// Check what we need to load
for (i=0; i < lb.length; i++) {
for (i=0; i < lb.length; i++) {
lang = lb[i].className.replace('language-','');
lang = lb[i].className.replace('language-','');
// Support the aliases specified above
if (aliasmap[lang]) lang = aliasmap[lang];
lurl = hlbaseUri + "highlightjs/" + lang + ".min.js";
lurl = hlbaseUri + "highlightjs/" + lang + ".min.js";
if (!(langs.includes(lang) || jss.includes(lurl))) {
if (!(langs.includes(lang) || jss.includes(lurl))) {
jss.push(lurl);
jss.push(lurl);