从 Hugo 到 Nuxt:我把“写博客”这件事做成了一个更顺手的流程
以前用 Hugo 搭博客,我最不喜欢的不是主题难改,而是写作流程不顺:编辑、预览、配置都很割裂。于是我用 Nuxt 做了一个“本地可视化管理 + 静态部署”的博客项目,把写作体验重新打磨了一遍。
我一开始用 Hugo 搭博客,是因为它够轻、够快、够“工程化”。但写得久了,我越来越确定:对我来说,博客的核心不是“能跑起来”,而是“写起来舒服”。
当时最折磨我的有三件事。
第一,写文章不在同一个界面里。文章是 Markdown 文件,预览是另一个地方,发布又是另一个步骤。我每次写一段都要在多个窗口之间来回切换,注意力被工具打断。
第二,每次想看效果都要启动服务。哪怕只是想确认一下标题层级、代码块样式、目录是否正确,也得先把服务跑起来,再打开页面。写作本来是一件轻松的事,却被流程变成了“每次都要做启动仪式”。
第三,站点配置不直观。改导航、改站点信息、改友链,往往要去翻配置文件或 JSON,改完还要再验证一遍有没有写错字段。它当然可控,但并不友好。
于是我给自己定了一个很明确的目标:把“写、看、改配置”都尽量放到一个地方完成,同时不牺牲 Hugo 那种“最终还是静态站、容易部署”的优点。
这个项目最终变成了一个 Nuxt 博客:文章仍然是 content/posts/**/*.md 的文件形式,但我额外做了一个只在本地可用的 /admin 管理端,用所见即所得编辑器来写正文,并在编辑时随时跳到前台 /posts/<slug> 预览效果。站点设置、友链这些内容,也做成了可视化表单页面,改完即保存,省掉了频繁去碰配置文件的心智负担。
发布这块我也尽量保持“静态站”的简单:需要上线时导出静态产物到 dist/,再同步到对象存储(COS)就行。前台页面不依赖服务端运行时,管理端只用于本地编辑,所以线上部署仍然轻量。
后来我又加了一个更像“写作软件”的形态:Electron 桌面模式。这样打开应用就能写、能预览、能改配置,文章和配置落在本地数据目录里,备份也更清晰。对我来说,这比“开一个终端、敲命令、再开浏览器”的体验更接近写作本身。
做完之后,我最大的感受是:技术选型当然重要,但更重要的是把自己的真实痛点拆成具体的需求,然后用一个可持续维护的方式把流程做顺。下一步我会继续围绕“写作不中断”去优化细节,比如更快的预览、更稳的发布日志、以及更一致的主题样式。