mirror of
https://github.com/jerryc127/hexo-theme-butterfly.git
synced 2026-08-10 20:48:42 +08:00
- wordcount/min2read/totalcount built-in helpers (replaces hexo-wordcount) - cloudTags random sort support - waline lightbox via MutationObserver - subtitle: seq guard prevents stale API response race - newest-comments: escapeHtml XSS fix, unified fetchAndRender with cache fallback - katex: try/catch asset load, encrypt re-render - chartjs: destroy charts on pjax, fix theme property check - mathjax: DOMContentLoaded instead of load - mermaid: clean stale error elements - medium-zoom: single instance, detach on pjax - getScrollPercent: WeakMap cache with resize invalidation - overflowPaddingR: avoid stale DOM refs - readmode: dedupe button, pjax cleanup - hexo-blog-decrypt: null-guard translateFn and encryptFn - tw_cn: expand skipped translate tags - localStorage: try/catch setItem - cdn.js: fix [lib|dist]* character class regex bug - findArchivesTitle: support custom archive_dir - shuoshuoFN: guard moment.tz when timezone empty - umami: no-store cache, error handling, path param - artalk: vote config option - bump version 5.7.1.260810
22 lines
622 B
Plaintext
22 lines
622 B
Plaintext
script.
|
|
(async () => {
|
|
const showKatex = () => {
|
|
document.querySelectorAll('#article-container .katex').forEach(el => el.classList.add('katex-show'))
|
|
}
|
|
|
|
if (!window.katex_js_css) {
|
|
window.katex_js_css = true
|
|
try {
|
|
await btf.getCSS('!{url_for(theme.asset.katex)}')
|
|
if (!{theme.math.katex.copy_tex}) {
|
|
await btf.getScript('!{url_for(theme.asset.katex_copytex)}')
|
|
}
|
|
} catch (e) {
|
|
console.error('[katex] failed to load assets, showing formulas anyway:', e)
|
|
}
|
|
}
|
|
|
|
showKatex()
|
|
btf.addGlobalFn('encrypt', showKatex, 'katex')
|
|
})()
|