博客 · 第 18 页
关于工程、设计与一些随手记录。
用 View Transitions 做主题切换水波纹
主题切换时用一个从点击点扩散的圆揭示新主题。半径要够到屏幕最远的角,动画结束必须清掉自定义属性,否则会污染下一次。
构建期分页:静态站的翻页为什么不该用查询参数
列表分页在构建时切成静态页,第 N 页是一个真实路由。没有客户端分页逻辑,也不用查询串,翻页就是纯链接跳转。
@/ 别名的三处配置:Vite、TypeScript 与 SCSS 缺一不可
全项目禁用深层相对引入,代价是别名要在三个地方各配一次。少配一处,症状分别是编辑器报错、构建失败、样式静默丢失。
zod 做 frontmatter 契约:把文章格式变成构建期错误
Content Collections 的 schema 是唯一真相。标题超 120 字、日期写错、标签写成字符串,都在构建期直接失败,而不是线上少一页。
为什么我又搭了一个个人主页
不是没有地方写东西,而是没有一个地方能同时放文章、小游戏和工具。顺便说说这次的技术选型为什么是 Astro 而不是 VitePress。
零配置注册表:新增一个游戏等于新建一个目录
列表、详情路由、首页精选、sitemap 全部由 import.meta.glob 自动发现。代价是必须接受「字面量相对路径」这条 Vite 的硬规则。
