上线手记 · Hello, chihaya.anon.yokohama
站点上线日的手记 —— 顺手记录一下设计、技术栈,以及这套从 markdown 到 Sanity 的发布管线长什么样。
这是 chihaya.anon.yokohama 的第一篇正式手记。它同时也是一次端到端的功能测试 —— figure / gallery / callout / blockquote / xref / 高亮 这些设计稿里出现过的元素,下面会逐个出现一次。删掉它,或者把它改成你真正想发的第一篇。
§ 01第一节:站名与定位
站名取自子域 `chihaya`,和这个域被买下时随手挑的一个 anchor —— 没有什么沉重的隐喻,就是一个干净、好念、能放在 logo 左边那块小色块里的两个字。英文副标、tagline、页脚标语都可以在 Sanity 的 Site Settings 文档里改。

设计目标只有两条:留白要够多,照片要是主角。文字风格沿用了铁道杂志和日本写真集的 grid —— 米白纸感底 `#F2F0EA`、深海军蓝 `#1E3A5F` 做唯一强调色、标题衬线(Noto Serif SC),其它都给等宽字。
§ 02第二节:设计语言
配色与字号
排版尺度全部托管在 `:root` 里 —— 一组 CSS 自定义属性,包括 `--type-display` `--type-title` `--type-h2` `--type-body` `--type-small` `--type-tiny`。要整体调字号、调间距,改这一处就够。

下面这一段是文字绕图演示。`placement=left` 让图浮在左侧、宽度 46%,正文从右侧开始绕过去。这个排版在长文章里非常实用 —— 当一张照片只是辅助说明,不至于打断阅读节奏,又比纯居中嵌入更紧凑。`placement=right` 则相反,把图放右边。窄屏(手机)下浮动会自动取消、改回单列居中。
实操经验:左浮和右浮交替使用,能让长篇章节有节奏感;连续三张全宽 `placement=full` 会让人疲劳,要克制。
字体加载
字体策略 Noto Serif SC(标题)、Noto Sans SC(正文)、JetBrains Mono(数字 / EXIF)、EB Garamond(英文斜体)四套都从 Google Fonts CDN 加载。 国内访问 Google Fonts 偶尔会卡 1–2 秒;如果以后要做加速,可以换成 jsdelivr 的 Noto 镜像,或者把字体子集自托管到 R2。 但 v1 阶段先不优化,因为体感差异不大。
§ 03第三节:照片与相册
照片走 Sanity 的两层结构:顶层 相册("城市" / "旅行" / "器材")+ 子相册("东京" / "横滨" / "京都")。每张照片可以填经纬度,落到足迹地图上。lightbox 里的 EXIF 是自由 key/value,想列什么就列什么。



上面这组 gallery 演示了 `{span2}` —— 第三张跨两列。如果你的照片本来就是横宽比例(全景、车体侧拍),span2 比挤在 1/2 列里更舒服。
§ 04第四节:发布工作流
发一篇博客的实际步骤就是下面这个列表:
- 在 `content/drafts/` 新建一个 `<slug>.md`,配套图片放 `images/<slug>/`
- 写正文(参考 `content/README.md` 里的扩展语法)
- 跑 `npm run publish:post -- content/drafts/<slug>.md`
- 到 Sanity Studio 审稿、点 Publish
- Cloudflare Pages webhook 自动重 build,1–3 分钟后线上可见
关于写入 token 这次发布用的 `SANITY_WRITE_TOKEN` 是 Editor 权限。 token 不要进 git、不要发聊天框。 一旦怀疑泄露,立刻去 sanity.io/manage 删掉旧的、生成新的。
§ 05第五节:余声
第一篇不必写得多漂亮 —— 网站的主结构已经足够稳,缺的只是真实内容。在 Sanity Studio 里把这一篇删掉,再写一篇你自己想写的,就是真正的开始。
"钢轨是城市最诚实的等高线。它从不撒谎,只是不停地、安静地,把人从一个清晨送到另一个夜晚。" — Field Note · 设计稿引用