Skip to content

Latest commit

 

History

History
68 lines (59 loc) · 2.31 KB

index.md

File metadata and controls

68 lines (59 loc) · 2.31 KB
title digestweb.dev
<script setup> import { computed } from 'vue' import { withBase } from 'vitepress' import { data as articles } from './articles.data.ts' import ArticleCard from './.vitepress/theme/components/ArticleCard.vue' import Nav from './.vitepress/theme/components/Nav.vue' import { useFilter } from './.vitepress/theme/composables/useFilter' const { activeTags, minSignificance, toggleTag } = useFilter() const sorted = computed(() => [...articles].sort((a, b) => { const sigDiff = (b.frontmatter.significance ?? 1) - (a.frontmatter.significance ?? 1) if (sigDiff !== 0) return sigDiff return new Date(b.date).getTime() - new Date(a.date).getTime() }) ) const targetDate = computed(() => { const now = new Date() const d = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate())) d.setUTCDate(d.getUTCDate() - 1) return d.toISOString().slice(0, 10) }) const latestDate = computed(() => { const dates = articles.map(a => String(a.date).slice(0, 10)).filter(Boolean).sort() return dates.includes(targetDate.value) ? targetDate.value : (dates.at(-1) ?? null) }) const filtered = computed(() => { let result = sorted.value if (latestDate.value) result = result.filter(a => String(a.date).slice(0, 10) === latestDate.value) if (minSignificance.value > 1) result = result.filter(a => (a.frontmatter.significance ?? 1) >= minSignificance.value) if (activeTags.value.length) result = result.filter(a => (a.frontmatter.tags ?? []).some(t => activeTags.value.includes(t))) return result }) </script>

No articles match the selected filters.