这篇文章记录当前博客从写 Markdown 到网站上线的步骤。以下命令在 Windows PowerShell 中执行,起点是博客根目录:C:\Users\95443\OneDrive\Blog\biribiribird。
1. 创建文章
在 content/posts/ 下新建一个独立文件夹,里面放 index.md。例如这篇文章位于:
1content/posts/tittle-tattle/work-env/blog-writing-publishing/
2└── index.md
从下面的模板开始写,发布前确认 draft: false,并给每篇文章使用不同的 slug:
1---
2title: 文章标题
3date: 2026-09-23
4draft: false
5tags: ["标签"]
6categories: ["分类"]
7series: ["专栏"]
8slug: my-post-slug
9---
10
11正文从这里开始。
slug 决定文章地址,例如 my-post-slug 对应 /posts/my-post-slug/。暂时不想公开时,设为 draft: true;预览草稿时使用下面的 -D 参数。
图片可以放在 index.md 旁边,例如 assets/screenshot.png,然后在正文中写:
1
2. 编辑 Markdown
标题用 #、##、###,链接写成 [文字](https://example.com),代码块用三个反引号包住并标明语言。保存后通过本地预览检查效果。
本站开启了单换行显示,因此同一段里直接按回车,网页上也会换行;如果想开始新段落,两段之间留一个空行。
1第一行
2第二行
3
4这是新的一段。
公式会在 Hugo 构建时生成 HTML。行内公式使用单个美元符号包围;行间公式使用双美元符号,并在公式前后留空行:
1这是行内公式:$E=mc^2$。
2
3$$
4E=mc^2
5$$
6
7这里继续写正文。
行间公式内部需要多行排版时,按 LaTeX 语法使用 aligned 等环境与 \\ 换行;不要依靠 Markdown 的普通回车来拆分公式。
3. 本地预览
在博客根目录打开 PowerShell,运行:
1.\hugo.exe server -D
浏览器打开 http://localhost:1313/,查看文章列表和文章页。检查标题、图片、链接、代码块、公式,以及手机宽度下的排版。编辑并保存 index.md 后,Hugo 会自动更新预览;结束时按 Ctrl+C。
-D 会让草稿也出现在本地预览中。准备发布时检查 draft: false,否则正常构建不会输出该文章。
4. 构建并检查发布文件
仍在博客根目录执行:
1.\hugo.exe --minify
2git -C public status --short
3git -C public diff --stat
Hugo 会把网站生成到 public/;这个目录是发布产物,不用于手工写文章。先确认构建没有错误,再查看 public 的变更,尤其是本次文章的 posts/my-post-slug/index.html、图片和站点索引。若 public 里本来就有其他未提交改动,先分清它们的来源再提交。
5. 发布网站
确认 public 中的变更都要发布后,在博客根目录执行:
1git -C public add -A
2git -C public commit -m "Publish blog post"
3git -C public push origin main
这里的 public/ 本身是一个 Git 仓库,远程仓库是 biribiribird/biribiribird.github.io。推送完成后,访问 https://biribiribird.top/posts/my-post-slug/ 核对线上页面;把示例 slug 换成文章自己的 slug。
仓库中也有 upload.bat,但它使用 git push --force。日常发布按上面的命令检查后普通推送更稳妥,尤其不要在未看清 public 变更时直接运行脚本。
每次发布前快速核对
index.md位于content/posts/下,date、slug和draft正确。- 本地预览中的图片、链接、公式和换行正常。
hugo.exe --minify构建成功,public的变更已核对。- 推送后打开线上文章地址,再检查一次页面。