Blog
从 Hugo 到 Astro + Tailwind
记录一次博客系统升级:从 Hugo 迁移到 Astro,并用 Tailwind 重新整理样式。
我把博客从 Hugo 迁到了 Astro,并用 Tailwind 重新整理了界面。
这不是一次彻底重写。旧站点已经能工作,Hugo 也足够稳定。但随着内容和页面结构逐渐增加,我希望新的博客更容易拆分组件,更容易处理 Markdown、MDX、主题切换、代码高亮和后续的文档区。
Astro 更接近我现在想要的形态:默认静态,按需增强,页面结构清楚。Tailwind 的引入也出于同样的原因。它不是为了制造更复杂的视觉效果,而是为了减少分散在各处的样式判断。
目标
这次升级的目标很简单。
首先,博客应该像博客。首页只保留必要入口,文章列表按时间排列,正文保持窄栏、清晰的元信息和稳定的阅读宽度。测试页面可以存在,但不应该成为站点的主要气质。
其次,内容需要分层。Blog 用来放阶段性的记录和想法,Docs 用来放更稳定的说明和参考。两者都基于 Astro content collections,但排序方式和阅读预期不同。
最后,界面要安静。浅色和深色主题都保留克制的对比度,不使用强烈装饰。代码块、表格、图片、脚注和数学公式都要能自然地出现在文章里,而不是像测试功能一样突兀。
取舍
Hugo 的优势是成熟、快、简单。它适合长期维护的静态博客,也有完整的主题生态。迁移到 Astro 之后,我失去了一部分现成主题带来的便利,但换来了更细的结构控制。
Astro 的页面、布局、组件和内容集合之间边界明确。Markdown 仍然是主要写作格式,MDX 只在需要组件时使用。这样可以避免文章变成页面代码,也避免为了少数复杂页面牺牲普通文章的写作体验。
Tailwind 也需要克制使用。它很容易让样式散落得过满,所以目前只把它作为设计 token 和布局工具。真正的视觉规则仍然集中在全局样式里,由少量 CSS 变量控制主题。
现在的状态
目前站点已经完成基础迁移。
首页分成 Blog 和 Docs 两个入口。Blog 支持 Markdown 文章、标签、发布日期、相邻文章导航和脚注跳转高亮。Docs 支持 MDX,可以在文档中使用 Astro 组件。代码高亮、数学公式、图片资源和明暗主题都已经接入。
这些工作并不复杂,但它们让站点从“能渲染内容”往“适合长期阅读”前进了一步。
后续要做的事情也很明确:补充真正的文章,清理测试内容,加入归档和订阅,再逐步整理文档目录。博客系统本身不应该占据太多注意力。它的职责是安静地承载内容。