mirror of
https://github.com/wassname/template.git
synced 2026-07-02 01:21:19 +08:00
Normalizes indents within code blocks
This commit is contained in:
+23
-11
@@ -1,17 +1,29 @@
|
||||
import Prism from "prismjs";
|
||||
|
||||
export default function(dom, data) {
|
||||
let codeElements = [].slice.call(dom.querySelectorAll("code"));
|
||||
let codeElements = [].slice.call(dom.querySelectorAll("dt-code"));
|
||||
codeElements.forEach(el => {
|
||||
// let content = el.innerHTML;
|
||||
// el.innerHTML = "";
|
||||
// let p = dom.createElement("pre");
|
||||
// let c = dom.createElement("code");
|
||||
// console.log(content)
|
||||
let highlighted = Prism.highlightElement(el);
|
||||
// c.innerHTML = highlighted;
|
||||
// p.appendChild(c);
|
||||
// el.appendChild(p);
|
||||
|
||||
let content = el.textContent;
|
||||
el.innerHTML = "";
|
||||
let language = el.getAttribute("language");
|
||||
let c = dom.createElement("code");
|
||||
if (el.getAttribute("block") === "") {
|
||||
// Let's normalize the tab indents
|
||||
content = content.replace(/\n/, "");
|
||||
let tabs = content.match(/\s*/);
|
||||
content = content.replace(new RegExp("\n" + tabs, "g"), "\n");
|
||||
content = content.trim();
|
||||
let p = dom.createElement("pre");
|
||||
p.appendChild(c);
|
||||
el.appendChild(p);
|
||||
} else {
|
||||
el.appendChild(c);
|
||||
}
|
||||
let highlighted = content;
|
||||
if (Prism.languages[language]) {
|
||||
c.setAttribute("class", "language-" + language);
|
||||
highlighted = Prism.highlight(content, Prism.languages[language]);
|
||||
}
|
||||
c.innerHTML = highlighted;
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user