我的 blog 技术栈与 AI 发布链路:从草稿到上线如何稳定运行
这篇文章不讨论主题美化,而是拆开一件更关键的事:
如何把一个技术 blog 做成低维护成本、可持续更新、可验证发布的工程化写作系统。
目标先行:它是工作流,不是展示页
我对这个站点的定位很明确:
- 持续沉淀开发过程中的真实经验
- 把可复用方法写成可检索内容
- 用最小维护成本保持稳定更新
换句话说,重点不是“页面多炫”,而是“流程是否可持续”。
技术栈:轻量但闭环
当前基础栈很直接:
VitePress:站点生成- Markdown:内容载体
npm scripts:统一命令入口
package.json 中已覆盖日常核心动作:
npm run nine:dev:本地开发npm run nine:build:生产构建npm run nine:preview:构建预览npm run nine:new:创建草稿入口docs/post/新文章.mdnpm run nine:time:生成发布时间戳
核心思路是:工具可以少,但关键链路必须完整。
站点配置:优先默认可用
站点主配置位于 docs/.vitepress/config.mts,当前策略偏务实:
- 顶部导航包含
主页与文章列表 socialLinks指向 GitHub- 开启
lastUpdated - 开启
sitemap - 搜索使用
local - 提供
editLink跳转 GitHub 编辑页
这些配置不花哨,但足够支撑内容组织、检索、维护和回溯。
内容结构:先统一入口,再统一命名
我把写作入口固定在 docs/post,核心对象只有三类:
- 正式文章:
docs/post/<timestamp>-<slug>.md - 草稿入口:
docs/post/新文章.md - 索引页面:
docs/post/post-list.md
统一入口的意义是:写作阶段只专注内容,不在一开始就消耗在命名和归档上。
发布链路:把重复动作固化
一篇文章从草稿到发布,固定执行这 6 步:
- 在
docs/post/新文章.md完成草稿 - 整理标题、小节与表达结构
- 运行
npm run nine:time生成时间戳 - 重命名为正式文件名
- 更新
docs/post/post-list.md索引 - 必要时运行
npm run nine:build验证构建
重点不是步骤多,而是步骤固定。固定之后,维护成本才会长期下降。
自动提交的角色:补充,不替代
自动提交脚本可以提升效率,但它不应替代内容整理与结构校验。
它更适合处理“最后一步机械动作”,不适合承担“文章质量与结构正确性”这类需要人工判断的环节。
AI 在链路中的位置:执行节点,而不是自由发挥
我更看重的是 AI 是否能按仓库约束稳定执行,而不是“写得像不像人”。
在这套流程里,AI 的价值主要体现在:
- 先收窄边界,再改正文
- 基于现有文件与命令落地
- 区分“已验证事实”与“未验证内容”
- 只改必要文件,不顺手扩散改动
当这些点可持续成立时,AI 才真正成为工作流的一部分。
结语
这个 blog 的技术栈并不复杂,真正重要的是链路清晰且可重复:
- 有统一草稿入口
- 有固定命名规则
- 有索引维护路径
- 有构建验证命令
- 有 AI 可遵循的执行约束
对我来说,这才是“能长期维护”的 blog 形态。