重建个人应用入口与静态博客,保留旧文章并支持本地发布

This commit is contained in:
fam
2026-09-21 12:03:38 +01:00
parent 76562f77e3
commit f1586d240e
17 changed files with 356 additions and 191 deletions
+30
View File
@@ -0,0 +1,30 @@
const tools = document.querySelector('.app-tools');
if (tools) {
tools.hidden = false;
let category = 'all';
const input = tools.querySelector('input');
const cards = [...document.querySelectorAll('#app-grid .app-card')];
const filter = () => {
const q = input.value.trim().toLocaleLowerCase();
let count = 0;
for (const card of cards) {
const visible = (category === 'all' || card.dataset.category === category) && card.dataset.search.toLocaleLowerCase().includes(q);
card.hidden = !visible;
if (visible) count++;
}
document.querySelector('#empty').hidden = count !== 0;
};
tools.querySelectorAll('[data-filter]').forEach(button => button.addEventListener('click', () => {
category = button.dataset.filter;
tools.querySelectorAll('[data-filter]').forEach(b => b.setAttribute('aria-pressed', String(b === button)));
filter();
}));
input.addEventListener('input', filter);
}
// Only articles containing diagrams load the pinned renderer. Text remains readable without it.
if (document.querySelector('.mermaid')) {
import('https://cdn.jsdelivr.net/npm/mermaid@10.9.3/dist/mermaid.esm.min.mjs').then(({default: mermaid}) => {
mermaid.initialize({startOnLoad:false, securityLevel:'strict', theme:'neutral', fontFamily:'system-ui'});
return mermaid.run({querySelector:'.mermaid'});
}).catch(() => {});
}