blog-demo · 归档与说明
内容模型与维护指南
Astro 内容集合、字段约束、图片组织和 Studio 同步维护约定。
- 状态
- 维护中
- 最后核对
- 源码修订
e0d3baa2
内容模型与维护指南
字段以 src/content.config.ts 为准;Studio 的表单描述在 studio/schema.mjs。两处改动需要同步,并运行检查、内容测试和构建。
长文
在 src/content/essays/ 新建 Markdown:
---
title: 一个问题的排查记录
description: 这篇解决了什么问题。
pubDate: 2026-09-06
topic: coding
tags: [Astro, 工程实践]
draft: false
---
正文……
topic支持blog、music、reading、watching、food、coding。所有公开长文进入博客;兴趣文章同时出现在相应栏目。draft: true不生成公开文章页,也不进入公开搜索、RSS、归档或推荐。草稿源文件仍可能被 Git 提交到公开仓库;私密文字应保存在仓库之外。- 可选
repo为完整仓库 URL;updatedDate和updateNote记录真正发生的补记,不自动刷新日期。 - 文件名通常就是文章 ID 与路由。建议使用稳定、简短的名字;已经分享后尽量不要改名。
书影音与美食
条目在 src/content/items/,图片放在条目同目录:
---
kind: book
title: 书名
creator: 作者
date: 2026-09-06
cover: ./book-cover.jpg
status: done
rating: 4
blurb: 一句想留下的短评。
draft: false
---
| 字段 | 说明 |
|---|---|
kind |
book 书、movie 影视、song 音乐、dish 自己做的、taste 在外面吃的 |
creator |
必填;对应作者、导演、歌手、做法来源或店家 |
date |
读完、听到、观看或吃到的实际日期;在读在看可填开始日期 |
cover |
可选本地图片相对路径,由 Astro 生成响应式版本 |
blurb |
必填;照片加两句话也可以是完整记录 |
status |
书和影视使用 want、doing、done;不填按已完成处理 |
rating |
可选,1–5 |
place |
可选,在外吃到的美食地点 |
url |
可选,完整 HTTP / HTTPS 收听或来源地址 |
essay |
可选,关联长文 ID,只在条目一端维护 |
关联长文必须存在;公开条目不应关联草稿。构建及内容检查会验证关联。想写长评可以在 Studio 选择“长文”,它会保存独立文章并建立关联;切回短评只解除关联,原文不会被删除。
闪念
在 src/content/sparks/ 写一条没有标题的记录:
---
date: 2026-09-06T20:30:00+08:00
tags: [记录]
draft: false
---
正文就是这个念头。
不知道时刻时可写 T00:00:00+08:00,页面视为只记录日期。记录链接按 ID 区分,允许同一天多条;旧的日期锚点仍可访问。
此间:图文与摄影
一条动态一个目录,图片与 index.md 放在一起:
---
date: 2026-09-06T17:40:00+08:00
place: 路边
photos:
- src: ./evening.jpg
alt: 傍晚落在墙上的一束光
draft: false
---
今天路过时拍下的片刻。
Studio 会处理照片方向、压缩、读取拍摄时间与相机参数。地点需要自行确认;alt 应描述图片内容。上传保存的源图也会进入仓库,请选准备公开的照片并检查元数据。
正文直接回车即可保留分行,Studio 即时预览与网页一致。多图缩略图保留完整画面;列表先展示前 6 张,其余可展开,也可以在放大窗口连续浏览。拍摄参数属于各张照片,在放大后展开“拍摄参数”查看;加载失败可重新加载。手机看图支持左右滑动,横屏和竖屏均保留切换与关闭按钮。
首页编选与真实关联
src/data/editorial.json:openingEssay手动置顶公开文章,openingNote可留空,noteKind区分quote(摘句)与note(编者按)。可在 Studio → 首页设置维护。发布新文章不会替换置顶;取消后首页显示“最近文章”,博客恢复普通时间列表。- 同文件的
thoughtLinks填{ spark, essay, note },只建立作者确认过的真实关联;两端都会显示入口。 src/data/now.json:修改items时同时更新updatedAt。图标使用src/components/icons.ts中已有的名字。- 年度档案自动从四类公开记录生成,不需要额外维护计数,也不会自动编造年度感想。
兴趣书房由 InterestShelf.astro 按栏目选择真实内容。增加一个新栏目需要同时更新栏目配置、页面和书房对应的内容选择逻辑,不能只加导航链接。
搜索、图片与字体
搜索索引由 src/pages/search-records.json.ts 输出的公开记录生成,scripts/index-search.mjs 写入 dist/pagefind/。正文、短评和闪念可被检索,导航与小工具不进入索引。开发服务器不生成索引,需要构建后预览。
保存图片时优先使用 Studio 的压缩结果。删除条目或更换图片前检查是否仍被其他条目引用;源照片保留在 Git,构建生成的 WebP 放在 dist/。
添加衬线标题、引用等文字后,构建会重新生成字体子集。paper-serif.woff2 与 subset.txt 一起提交,详见字体说明。