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 一起提交,详见字体说明。