这个博客的内容主体使用 Astro。
选择它不是因为想追新框架,而是因为博客本质上是一个内容优先的网站:文章需要在没有 JavaScript 的情况下也能正常阅读,页面结构应该尽量简单,动态能力只在真正需要的地方出现。
静态优先
文章在构建阶段生成 HTML。这样做的直接好处是:
- 首屏不依赖客户端请求正文;
- 搜索引擎拿到的是完整页面;
- 部署可以非常简单;
- 动态 API 出问题时,文章仍然能看。
JavaScript 只做增强
站内搜索、阅读量、评论和主题切换需要浏览器脚本,但它们都不是正文成立的前提。
这种边界让我更容易判断一个功能到底值不值得加:如果它只是为了让技术栈看起来更“完整”,通常就先不做。
写作体验更重要
文章保留在 src/content/posts/ 里,用 Markdown / MDX 写。标题、摘要、发布日期、分类和标签都在 frontmatter 中维护。
最终希望达到的状态是:打开编辑器,新建一篇 Markdown,写完、提交、构建、发布。博客系统本身尽量不要打扰这个流程。 例如,一个文章页可以保持很薄:
---
const { title } = Astro.props;
---
<article>
<h1>{title}</h1>
<slot />
</article>
代码块右上角会提供复制按钮,正文脚本只做这种阅读层面的增强。
Discussion
评论
—评论审核通过后公开显示;邮箱不会公开。