开张
站点搭好了。第一篇写它自己。
排版
视觉沿用 kami 这套设计系统。它把约束写得很死,我照单全收,因为约束本身就是它好看的原因:
- 页面底色是羊皮纸色
#f5f4ed,不用纯白 - 全站只有一个彩色强调色,墨蓝
#1B365D,占版面比例不超过百分之五 - 所有灰色带黄褐底调,不用冷蓝灰
- 衬线体承担标题层级,字重只用 400 与 500 两档
最后一条最容易被忽略。浏览器在缺少某个字重时会把字形机械拉粗,看起来“差不多”,但笔画结构是假的。关掉 font-synthesis 之后,页面上出现的每一个字重都对应一个真实的字体文件。
正文的行距和段间距比大多数中文站要松:行高 1.65,段间距是字号的 1.79 倍。这个比例决定的观感比字号本身更多。
字体换过一次
最初用的是仓耳今楷。它好看,但我查到一份 2020 年的《仓耳字库免费开源字体授权声明》,附件列出的免费字体共 6 套 22 款,仓耳今楷不在其中。
网页字体是分发行为,不是使用行为。每个访客的浏览器都会下载一份字体文件到本地,这和“我不商用”是两件事——字体授权通常把桌面排版和 Webfont 分发分开授权。既然拿不到明确的许可,就不该发。
换成了霞鹜文楷,SIL OFL-1.1 授权,明确允许再分发修改版与子集,同样是楷体。中文字体太大不能整包上网,切分的做法和实测数据写在另一篇:把 24 MB 的中文字体拆成按需加载。
换字体本身只动了一处:CSS 变量 --serif 的第一项。kami 的颜色、间距、行高、组件一行都没改。设计系统把字体收敛成一个变量,这时候的好处才显出来。
写一篇文章要做什么
内容目录本身就是一个 Obsidian 仓库。在 Obsidian 里写完,git push,Vercel 自动构建部署。没有后台,没有登录,没有数据库。
代价是 Obsidian 的几个专有语法不能用:双方括号内链、双方括号图片嵌入、> [!note] 标注块、双等号高亮,构建后都会原样吐成字面量。前两个已经通过 Obsidian 的设置规避——关掉 Wikilinks,链接和图片就都写成标准 Markdown。
运行期没有 JavaScript
构建产物里 JS 文件数为零。左下角那个菜单是原生的 <details> 元素,折叠状态、键盘操作、屏幕阅读器语义都由浏览器提供,不需要脚本。
这不是为了炫技。少一层运行时,就少一处会坏的地方。