建站
这个站点是怎么搭起来的
这个站点采用 Headless 结构:内容在别处管理,前端只负责渲染。构建时通过 GraphQL 拉取全部文章与作品,输出纯静态页面,运行时不向后端发出任何请求。
数据只有一个入口
所有页面与组件都从 lib/posts.ts 取数据,不自行请求。端点未配置、不可达或超时的时候,构建会回退到本地样例数据,并在控制台提示一次,保证站点始终能构建成功。
const data = await gql(POSTS_QUERY);const list = data ? data.posts.nodes.map(normalizePost) : fixturePosts;默认零 JavaScript
页面默认不带脚本。只有确实需要状态的地方才加一小段:主题切换、阅读进度、目录高亮、页脚签名的触发。每一段都能说清楚它解决什么问题。
动效的边界
全站只用一条缓动曲线 cubic-bezier(0.16, 1, 0.3, 1),只动 transform 与 opacity,并在系统开启「减少动态效果」时全部关闭。
排版
中文正文使用系统字体栈,西文展示字体为 Space Grotesk,数字与标签使用 JetBrains Mono,并统一开启等宽数字。完整的中文字体子集体积太大,只有「折雪」两个字被单独子集化用于字标。