--- // 热力图 v5 预览方案「墨染」:一年贡献按时间顺序洇墨—— // 只走有贡献的格子,每到访一格便有一圈软光晕从格心洇开; // 扫完一年后一道横向墨光掠过整幅,随后无缝进入下一轮。 // 本文件是独立预览件:只新增、不改既有、零依赖零请求。 import { loadHeatmap, levelOf } from '../../../lib/heatmap'; interface Props { title: string; concept: string; } const { title, concept } = Astro.props; // 数据获取失败(无 token / 无缓存)时 weeks 为空 → 网格空壳,引擎自然不启动 let weeks: import('../../../lib/heatmap').HeatDay[][] = []; try { ({ weeks } = await loadHeatmap()); } catch {} ---

{title}

{concept}

{weeks.map((w) => w.map((d) => (