置顶文章
This commit is contained in:
parent
fa9c7c8388
commit
b8e6bcd329
|
@ -1,41 +1,72 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en" xmlns:th="http://www.thymeleaf.org">
|
<html lang="en" xmlns:th="http://www.thymeleaf.org">
|
||||||
<th:block th:fragment="import">
|
<th:block th:fragment="import">
|
||||||
<link rel="stylesheet"
|
<!--<link rel="stylesheet"-->
|
||||||
th:href="@{/assets/libs/highlight.js/styles/{theme}(theme=${theme.config.content.code_highlight_style})}"/>
|
<!-- th:href="@{/assets/libs/highlight.js/styles/{theme}(theme=${theme.config.content.code_highlight_style})}"/>-->
|
||||||
<script th:src="@{/assets/libs/highlight.js/highlight.min.js}"></script>
|
<!--<script th:src="@{/assets/libs/highlight.js/highlight.min.js}"></script>-->
|
||||||
|
<script src="https://unpkg.com/shiki"></script>
|
||||||
</th:block>
|
</th:block>
|
||||||
|
|
||||||
<th:block th:fragment="script">
|
<th:block th:fragment="script">
|
||||||
|
<!--<script>-->
|
||||||
|
<!-- (async function () {-->
|
||||||
|
<!-- const extraLanguages = "[[${theme.config.content.code_highlight_extra_languages}]]".split(",").filter((x) => x);-->
|
||||||
|
|
||||||
|
<!-- for (let i = 0; i < extraLanguages.length; i++) {-->
|
||||||
|
<!-- const lang = extraLanguages[i];-->
|
||||||
|
<!-- if (lang) {-->
|
||||||
|
<!-- await loadScript("[[${#theme.assets('/libs/highlight.js/languages')}]]/" + lang + ".min.js");-->
|
||||||
|
<!-- }-->
|
||||||
|
<!-- }-->
|
||||||
|
|
||||||
|
<!-- console.log("Extra languages: ", extraLanguages);-->
|
||||||
|
|
||||||
|
<!-- document.querySelectorAll("pre code").forEach((el) => {-->
|
||||||
|
<!-- hljs.highlightElement(el);-->
|
||||||
|
<!-- });-->
|
||||||
|
<!-- console.log("Loaded languages: ", hljs.listLanguages());-->
|
||||||
|
<!-- })();-->
|
||||||
|
|
||||||
|
<!-- function loadScript(url) {-->
|
||||||
|
<!-- return new Promise(function (resolve, reject) {-->
|
||||||
|
<!-- const script = document.createElement("script");-->
|
||||||
|
<!-- script.type = "text/javascript";-->
|
||||||
|
<!-- script.src = url;-->
|
||||||
|
<!-- script.onload = resolve;-->
|
||||||
|
<!-- script.onerror = reject;-->
|
||||||
|
<!-- document.head.appendChild(script);-->
|
||||||
|
<!-- });-->
|
||||||
|
<!-- }-->
|
||||||
|
<!--</script>-->
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
(async function () {
|
|
||||||
const extraLanguages = "[[${theme.config.content.code_highlight_extra_languages}]]".split(",").filter((x) => x);
|
|
||||||
|
|
||||||
for (let i = 0; i < extraLanguages.length; i++) {
|
$("article pre>code").each(function () {
|
||||||
const lang = extraLanguages[i];
|
|
||||||
if (lang) {
|
console.log(this.innerHTML)
|
||||||
await loadScript("[[${#theme.assets('/libs/highlight.js/languages')}]]/" + lang + ".min.js");
|
|
||||||
}
|
// 去除空格以及多余标点
|
||||||
|
var codeId = $(this).text().replace(/[\s|\~|`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\_|\+|\=|\||\|\[|\]|\{|\}|\;|\:|\"|\'|\,|\<|\.|\>|\/|\?|\:|\,|\。]/g, '');
|
||||||
|
codeId = codeId.toLowerCase();
|
||||||
|
if (idArr[codeId]) {
|
||||||
|
// id已经存在
|
||||||
|
$(this).attr('id', codeId + '-' + idArr[codeId]);
|
||||||
|
idArr[codeId]++;
|
||||||
|
} else {
|
||||||
|
// id未存在
|
||||||
|
idArr[codeId] = 1;
|
||||||
|
$(this).attr('id', codeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("Extra languages: ", extraLanguages);
|
shiki.getHighlighter({
|
||||||
|
theme: 'nord'
|
||||||
|
}).then(highlighter => {
|
||||||
|
const code = highlighter.codeToHtml(`console.log('shiki');`, {lang: 'js'})
|
||||||
|
document.getElementById('codeId').innerHTML = code
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
document.querySelectorAll("pre code").forEach((el) => {
|
|
||||||
hljs.highlightElement(el);
|
|
||||||
});
|
|
||||||
console.log("Loaded languages: ", hljs.listLanguages());
|
|
||||||
})();
|
|
||||||
|
|
||||||
function loadScript(url) {
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
const script = document.createElement("script");
|
|
||||||
script.type = "text/javascript";
|
|
||||||
script.src = url;
|
|
||||||
script.onload = resolve;
|
|
||||||
script.onerror = reject;
|
|
||||||
document.head.appendChild(script);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
</th:block>
|
</th:block>
|
||||||
</html>
|
</html>
|
Loading…
Reference in New Issue