ZINEHQ 是一个静态出版物。没有应用服务器,没有数据库,没有前端框架。档案是一组文件,可以放在任何地方托管,不用 JavaScript 也能读,不用插件也能打印。这个约束是故意的:档案应该比它的工具活得久。
字体
两套字体几乎干了所有的活。Newsreader 承担正文与标题;它有长文页面需要的光学尺寸和略带文学性的节奏。IBM Plex Mono 承担字标、目录编号、元数据、标签与表格。等宽字体不是技术装饰:它让 ZINEHQ 六个字母等宽,于是字标读起来像一枚钢印,而不是一个 logo。
字标全大写,固定字距 0.16em。正文中提到名字时,用等宽字体加 font-variant-caps: all-small-caps,让它与周围句子坐在同一条基线上。中文回退到宋体 / Noto Serif SC / 思源宋体,行距略松。
色板
色板是故意做小的:纸白、墨、牛血红、钢灰、黄铜。牛血红只用于强调与钢印;钢灰与黄铜分别标识专题与手册系列。读者自选纸张——骨白、旧纸、冷灰、夜墨——每一种纸都带自己的一对文字色,四种主题下对比度都成立。没有渐变,没有玻璃,没有发光。
正文用 Newsreader 与 IBM Plex Mono,全部自托管。读者可以把字号调四档——S、M、L、XL——只有文字令牌会动,栅格、线条与封面几何保持不动。
栅格与线条
页面宽度 1320px,边距流式。正文宽度上限 64ch;刊物内页用一条窄的元数据栏加一条更宽的阅读栏。线条是一像素,从不做圆角。卡片是目录签,不是浮动面板:一条细线、一个编号、一个日期、一张封面。
构建
- 框架: Astro 5,静态输出。
- 内容: Astro Content Collections,Markdown 加类型化 schema。
- 样式: 手写 CSS 加自定义属性;没有工具类框架。
- 字体: 自托管 Fontsource 包;不向第三方请求字体。
- JavaScript: 几个小的内联脚本(纸张与字号、索引、阅读进度);没有框架运行时。
- 托管: 兼容 Cloudflare Pages;产物是
dist/。
编辑元数据
每一期都带同样的字段:编号、slug、系列、标题、摘要、日期、状态、页数、格式、封面颜色、语言、阅读时长、标签。索引、期号页、站点地图与语言替代链接都由这些字段生成。缺一个字段,构建就失败——这正是重点。
隐私
没有统计脚本、没有广告像素、没有第三方嵌入。唯一保存的偏好是纸张主题与字号,存在 localStorage 里。字体由本站提供。订阅表单是预览,不发送数据。完整版本见隐私说明。
更正
更正做在这一期里,并记录在此。更正不会擦掉第一次印刷,它只是加一行。要报告错误,请用转让页的表单说明具体段落。在那之前,这是预览版,没有开放的更正记录。
致谢与授权
封面是排版的,没有图库照片。Newsreader 与 IBM Plex Mono 采用 SIL Open Font License。本站内容与代码 © 2026 ZINEHQ。代码是这一版的一部分,随版本一并转让;不以开源许可发布。