这个博客的发布流程短得惊人:写 Markdown,构建,完成。本文把整条链路过一遍。
一条命令新建文章
npm run new -- "文章标题"
会在 posts/ 下生成带 Frontmatter 的 Markdown 模板,日期自动填今天。想控制文件名时,加第二个参数:
npm run new -- "文章标题" my-slug
边写边看
两个选择:
npm run dev # 构建一次 + 启动本地服务器 http://localhost:4173
npm run watch # 常驻监听:保存 .md 后自动重新构建,刷新浏览器即可
写作时保持 npm run watch 在终端里跑,保存即见效果。改动 site.config.json(站点名、标语)也会触发重建。
草稿机制
不想让别人(或未来的自己)看到半成品?Frontmatter 里加一行:
draft: true
草稿不会生成页面、不进首页列表,但依然参与排序统计。写完删掉这行,构建后即发布。
清理与构建
删掉某篇 .md 后,它对应的 .html 构建产物会在下次构建时自动清理,不会留下孤儿页面。
npm run build # 全量构建:文章页 + 归档 + 标签 + RSS + sitemap
构建会同时更新:
assets/js/posts-data.js—— 首页列表、搜索、统计的数据源archive.html/tags.html—— 归档与标签页feed.xml/sitemap.xml—— RSS 订阅与搜索引擎收录
部署
构建产物是纯静态文件,整个目录丢到任何静态托管即可:
# 本地任意静态服务器
python3 -m http.server 4173
# 或同步到服务器 / GitHub Pages / 对象存储……
没有数据库需要迁移,换设备时把文章目录带走即可。