|
|
|
@ -6,9 +6,23 @@ |
|
|
|
|
var hlbaseUri = "/js/"; |
|
|
|
|
var lb = document.querySelectorAll("code[class^='language-']"); |
|
|
|
|
|
|
|
|
|
// Set langs to the langs that are included by default (for now: 'common set' on CDN) |
|
|
|
|
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" : "bash" |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// Given a set of nodes, run highlighting on them |
|
|
|
|
function highlight(nodes) { |
|
|
|
|
for (i=0; i < nodes.length; i++) { |
|
|
|
@ -22,7 +36,7 @@ |
|
|
|
|
var sc = document.createElement('script'); |
|
|
|
|
sc.src = uri; |
|
|
|
|
sc.async = false; // critical? |
|
|
|
|
// Set callback on last script |
|
|
|
|
// Set callback on last script |
|
|
|
|
if (uris.indexOf(uri) == uris.length-1) { |
|
|
|
|
// Set callback regardless |
|
|
|
|
// so we're sure it will run if last element had error |
|
|
|
@ -46,8 +60,10 @@ |
|
|
|
|
// Check what we need to load |
|
|
|
|
for (i=0; i < lb.length; i++) { |
|
|
|
|
lang = lb[i].className.replace('language-',''); |
|
|
|
|
// Support the aliases specified above |
|
|
|
|
if (aliasmap[lang]) lang = aliasmap[lang]; |
|
|
|
|
lurl = hlbaseUri + "highlightjs/" + lang + ".min.js"; |
|
|
|
|
if (!(langs.includes(lang) || jss.includes(lurl))) { |
|
|
|
|
if (!jss.includes(lurl)) { |
|
|
|
|
jss.push(lurl); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|