20250419

今天一直在打磨手头这个博客 / 日记系统,重点是解决了之前使用过程中一直让我头疼的一些小痛点。

因为是静态处理,所以内容的更新都依赖 md 或 mdx 文件,每次写都要在文件开头加上一段 frontmatter,例如:

---
title:
description:
pubDate:
cover:
---

虽然说写这些东西也不算特别麻烦,但对我来说实在有些多余。毕竟这个系统的初衷就是记录日常,标题、描述、封面啥的并没那么重要。于是我就一直在想,有没有办法省掉这一步,直接从 Markdown 正文中提取相应的内容。

今天总算折腾出一个方案:如果开头没写 frontmatter,就自动从 Markdown 里提取。像标题会取首个一级标题、描述取第一个引用块、发布时间读取文件创建时间、封面图则是 Markdown 中第一张图片。自己试了一下,效果很满意,写起来清爽了不少。

但快要完工时,我突然冷静下来一想:虽然省事了,可这中间用了不少自定义的提取逻辑,很多细节都和我的个人习惯绑定得很死。如果哪天想更换构建工具,这套逻辑恐怕会变成“迁移地狱”的源头——屎山代码写的时候一时爽,后面回头改的时候,真有得受了。

不过转念一想,经过这段时间深入研究 Astro,我感觉将来要换构建工具的可能性真的不大。Astro 太灵活了,也太好用了,甚至有种越用越上头的感觉。

不管了,先这样写着,用得爽就行了!