置顶文章

This commit is contained in:
liuzhihang 2022-10-16 12:34:30 +08:00
parent fa9c7c8388
commit b8e6bcd329
1 changed files with 58 additions and 27 deletions

View File

@ -1,41 +1,72 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="import">
<link rel="stylesheet"
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>
<!--<link rel="stylesheet"-->
<!-- 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 src="https://unpkg.com/shiki"></script>
</th:block>
<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>
(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");
}
$("article pre>code").each(function () {
console.log(this.innerHTML)
// 去除空格以及多余标点
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>
</th:block>
</html>