UNPKG

952 BJavaScriptView Raw
1import Prism from "prismjs";
2
3export default function(dom, data) {
4 let codeElements = [].slice.call(dom.querySelectorAll("dt-code"));
5 codeElements.forEach(el => {
6 let content = el.textContent;
7 el.innerHTML = "";
8 let language = el.getAttribute("language");
9 let c = dom.createElement("code");
10 if (el.getAttribute("block") === "") {
11 // Let's normalize the tab indents
12 content = content.replace(/\n/, "");
13 let tabs = content.match(/\s*/);
14 content = content.replace(new RegExp("\n" + tabs, "g"), "\n");
15 content = content.trim();
16 let p = dom.createElement("pre");
17 p.appendChild(c);
18 el.appendChild(p);
19 } else {
20 el.appendChild(c);
21 }
22 let highlighted = content;
23 if (Prism.languages[language]) {
24 c.setAttribute("class", "language-" + language);
25 highlighted = Prism.highlight(content, Prism.languages[language]);
26 }
27 c.innerHTML = highlighted;
28 });
29}