博客日常使用指南:写文章、发动态、加书签(自用记录)
一段全流程手册,教你从安装 Node、pnpm,启动本地服务器到写第一篇文章。所有配置集中在单个文件,内容放在 markdown 目录中,保存即热更新。推荐使用脚手架 `pnpm create blog/post <文件名>` 自动生成 frontmatter(标题、日期、slug)并支持中文转拼音。手动创建可自行填充模板,调整 frontmatter 字段(标签、草稿、封面、置顶等)以控制列表展示与发布。文章 URL 采用 slug,建议写明以免移动文件夹后失效。正文使用标准 Markdown,支持图片、代码块、PlantUML 时序图等。最后把文件保存即可在浏览器即时预览;完成后可推送至 GitHub 并构建发布。
上一篇《从零搭建个人博客》记录了怎么把站搭起来。这篇是手把手使用手册:每一步都给出可以直接复制的命令和模板,照着做就行,不用动脑子(划掉)不用查资料。
记住一个总原则:所有站点配置都集中在
src/config/index.ts一个文件里(按模块分区、带编号注释),所有内容都在src/content/目录下。改完保存,本地开发页面即时热更新。
第 0 步:把网站跑起来
写文章之前,先让网站在本地转起来。只需要做一次。
1. 确认环境
打开终端(Windows 用 PowerShell),分别输入这两条命令检查版本:
node -v # 需要 v22.23 以上pnpm -v # 需要 11.22 以上如果提示「不是内部或外部命令」,说明还没安装:去 nodejs.org 装 Node.js(会自带核心),再输入 npm install -g pnpm 装 pnpm。装完重开一个终端再检查一次。
2. 启动网站
cd D:\blog\Firefly # 换成你的项目文件夹路径pnpm install # 第一次运行才需要,安装依赖pnpm dev # 启动本地开发服务器看到终端里出现 Local http://localhost:4321/ 就说明成功了。用浏览器打开这个地址,你看到的就是自己的网站。
热更新:只要 pnpm dev 开着,你改任何文件保存,浏览器页面会自动刷新。写文章时建议左边开编辑器、右边开浏览器,改一段看一眼。
按 Ctrl + C 停止开发服务器。
第 1 步:写第一篇文章
文章放在哪里
所有文章都是 src/content/posts/ 目录下的 Markdown 文件,一个 .md 文件就是一篇文章。不需要注册或登记,文件放进去就自动出现在首页、归档和 RSS 里。
目录按分类建了文件夹:
src/content/posts/├── tech/ # 技术类:建站、教程、运维├── daily/ # 日常随笔└── anime/ # 追番相关以后想加新分类,在 posts/ 下新建一个文件夹就行,不需要改任何配置。
方法一:用脚手架创建(推荐)
在项目根目录的终端里执行(把 tech/my-first-post 换成你的文件名):
pnpm new-post -- tech/my-first-post这条命令会自动做三件事:
- 在
src/content/posts/tech/下创建my-first-post.md; - 写好 frontmatter 模板(标题、日期、slug 都是现成的);
- 如果文件名里写了中文,会自动转成拼音作为 URL,比如
我的笔记→wo-de-bi-ji。
文件名可以带子文件夹前缀(如 tech/xxx),也可以不带(直接生成在 posts/ 根目录,再手动挪进分类文件夹)。
方法二:手动创建
在 src/content/posts/tech/ 里直接新建一个 我的文章.md,把下面的模板整个粘进去,然后按注释逐行改:
---title: 我的第一篇文章 # 必填,显示在列表和浏览器标签页published: 2026-09-22 # 必填,发布日期description: 一两句话的摘要 # 建议填,列表页和分享卡会显示tags: [建站, 随笔] # 标签,方括号里逗号分隔,可以多个category: 技术 # 分类,和所在文件夹保持一致draft: false # false = 正式发布;true = 草稿slug: my-first-post # 可选,自定义 URL;不填就用文件名---
正文从这里开始,标准 Markdown 语法……脚手架用户注意:
pnpm new-post生成的模板里有一行image: ''(空值 = 不显示封面)。想要随机二次元封面,就把这一行删掉;想指定封面再填图片直链。
frontmatter 字段速查
frontmatter 就是文件开头两行 --- 之间的那段 YAML,是文章的”身份证”。常用字段:
| 字段 | 必填 | 作用 | 说明 |
|---|---|---|---|
title | ✅ | 文章标题 | 列表、页面标题都用它 |
published | ✅ | 发布日期 | 决定排序和归档年份 |
description | 建议 | 摘要 | 列表页显示;不填会截取正文开头 |
tags | 可选 | 标签 | [标签A, 标签B] 格式 |
category | 建议 | 分类 | 一篇只归一类,建议与文件夹同名 |
draft | 可选 | 草稿开关 | true 只在本地预览可见,构建时排除 |
slug | 建议 | URL 地址 | 见下方「URL 规则」 |
image | 可选 | 封面图 | 删掉这行 = 随机封面;填直链 = 指定封面;'' = 无封面 |
pinned | 可选 | 置顶 | true 固定在文章列表最前面 |
updated | 可选 | 最后编辑时间 | 改过文章后填新日期 |
series | 可选 | 系列名 | 同名系列自动组成系列页,配合 seriesOrder: 1 排序 |
password | 可选 | 访问密码 | 填了则文章加密,读者需输密码;passwordHint 可给提示 |
几个要点:
- URL 规则:
tech/docker-basics.md不写slug时地址是/posts/tech/docker-basics/;写了slug: docker-basics则是干净的/posts/docker-basics/。建议每篇都写slug,以后调整文件夹不影响链接; - 中文文件名可以用(脚手架会自动转拼音),但手动建文件时建议文件名用英文短横线风格,URL 更好看;
- 时区坑点:
published只写日期没问题;如果精确到几点几分,必须写成2026-09-21T09:00:00+08:00带时区的格式。因为构建机在 GitHub 的 UTC 时区,不带时区会被当成 UTC,时间全部偏移 8 小时。
保存,看效果
保存文件,浏览器(http://localhost:4321)会自动刷新——首页列表里出现你的新文章了。点进去检查排版,改到满意为止。
第 2 步:正文常用写法
正文就是标准 Markdown,下面每种给一个最小可复制示例。
基础排版
## 二级标题(一级标题留给文章大标题,正文从二级开始)
普通段落,**加粗**、*斜体*、~~删除线~~、`行内代码`。
- 无序列表项- 另一项
1. 有序列表项2. 另一项
> 引用块,适合放注意事项或台词
[链接文字](https://example.com)图片
 # 网络图片,直接贴直链 # 本地图片放到 public/assets/images/ 下代码块
三个反引号开头,后面跟语言名:
```jsconsole.log("Hello, blog!");```支持语法高亮和复制按钮。超过 15 行的长代码会自动折叠(显示前 8 行 + 展开按钮),也可以在语言名后面写 collapse 手动控制。
提示框(callout)
> [!类型] 开头的引用块会渲染成彩色提示框,支持五种类型:
> [!NOTE]> 补充说明,蓝色。
> [!TIP]> 小技巧,绿色。
> [!IMPORTANT]> 重要信息,紫色。
> [!WARNING]> 警告内容,黄色。
> [!CAUTION]> 危险操作,红色。表格
| 姓名 | 作用 || --- | --- || Astro | 静态站点框架 || Svelte | 前端交互框架 |数学公式
行内公式:$E = mc^2$
独立公式块:$$\int_{-\infty}^{\infty} e^{-x^2} \, dx = \sqrt{\pi}$$流程图(Mermaid)
```mermaidgraph LR A[写文章] --> B[git push] B --> C[自动构建] C --> D[自动上线]```时序图(PlantUML)
```plantuml@startuml游客 -> 网站 : 打开文章网站 --> 游客 : 返回内容@enduml```每篇文章自带的「AI 智能总结」
文章页顶部有个「AI 智能总结」卡片,不需要你做任何事:
- 摘要在网站构建时用免费 AI 预先生成好,直接烘进页面,访客秒开;
- 只在你改了文章内容后,下次构建才会重新生成那篇的摘要;
- 开关、接口、字数、逐字特效等参数都在
src/config/index.ts的「AI 总结」模块; - 只在构建时把正文发给 AI 一次,不收集任何访客信息。
第 3 步:发布上线
本地满意后,三连发布:
git add -A # 1. 把所有改动放进暂存区git commit -m "post: 新文章「我的第一篇文章」" # 2. 打包成一个存档点git push # 3. 推送到 GitHub推送后 GitHub 会自动构建,构建完成后服务器自动拉取上线,约两三分钟后刷新你的线上网站就能看到新文章——不需要登录服务器做任何操作。
修改已发布的文章也一样:改文件 → 重新三连即可,链接不变(这就是建议写 slug 的原因)。
常见问题排查
改了内容但页面没变?
- 先确认
pnpm dev还开着、浏览器开着的是localhost:4321; - 还不行就
Ctrl + C停掉,重新pnpm dev(改 frontmatter 后偶尔需要); - 再不行删掉项目根目录的
.astro文件夹后重启——这是构建缓存,删了没副作用。
线上要等才生效? 记住分界线:pnpm dev 里的改动只存在于你电脑;只有 git push 之后才会上线。另外改 src/config/index.ts 里的构建类配置(如 AI 总结),本地也要重新 pnpm build 才能验证。
发布日期不对? 见上方时区坑点,时间精确到分时必须带 +08:00。
文章不想让人看到? draft: true 转草稿,只在本地可见。
发动态
动态是短内容随手记,和文章分开管理,存放在 src/content/dynamic/。
一行命令发一条:
pnpm new-dynamic -- "今天给博客加了个状态页,折腾了一下午,值!"会在动态目录生成一个按时间命名的 .md 文件,内容就是你刚才输入的文字,published 时间自动填好。也可以手动建文件,frontmatter 只有两三个字段:
---published: 2026-09-21T20:30:00+08:00 # 必填,精确到分记得带时区pinned: false # 可选,true 置顶在动态流最前location: 上海 # 可选,显示在动态卡片上---
这里写动态内容,支持 Markdown。图片地址写在正文里会自动渲染成图片墙。小坑:删除或修改动态后页面没变化,是构建缓存问题——删掉 .astro 目录重启 pnpm dev 就好。
添加书签导航
书签导航页(/booknav/)的数据在 src/config/index.ts 的「书签导航」模块,按「分类组 → 书签项」两级组织。把下面示例粘进去改成自己的书签即可:
export const booknavConfig: BooknavGroup[] = [ { // —— 分类组 —— id: "dev", // 唯一标识 name: "开发", // 分类名称 icon: "material-symbols:code-rounded", // 分类图标(Iconify 格式) desc: "写代码时离不开的站点", // 分类描述,可省略 weight: 100, // 排序权重,越大越靠前 items: [ { // —— 书签项 —— title: "MDN Web Docs", url: "https://developer.mozilla.org", desc: "最权威的 Web 技术文档", // 可省略 weight: 9, // 组内排序 }, { title: "Astro 文档", url: "https://docs.astro.build", }, ], },];图标不用手动找图:书签项没写 icon 时会自动抓取目标站点的 favicon。
其他常用配置速查
| 想做什么 | 改哪里 |
|---|---|
| 站名 / 副标题 / 主题色 / 域名 | src/config/index.ts ① 站点基础(站名改 SITE_TITLE 一处即可) |
| 头像 / 昵称 / 社交链接 | src/config/index.ts ② 用户资料(首页横幅链接同步生效) |
| 开关某个页面(如相册、友链) | ① 站点基础里的 pages 字段 |
| 导航栏菜单与顺序 | src/config/index.ts ④ 导航栏 |
| 侧边栏组件与顺序 | src/config/index.ts ⑥ 侧边栏布局(桌面与移动端共用的组件在 WIDGETS 里改一处) |
| 首页壁纸与横幅文案 | src/config/index.ts ⑦ 背景壁纸 |
| 相册 | src/config/index.ts ⑮ 相册 + 图片放 public/gallery/ |
| 页脚文字 | src/config/FooterConfig.html |
| 关于页 / 友链页 | src/content/spec/about.md / friends.mdx |
两个通用规律:
pages开关是总闸:把某个页面设为false,导航、sitemap 里都会自动消失,不用到处删链接;- 图标统一用 Iconify 语法:
图标集:图标名,如material-symbols:home、fa7-brands:bilibili,全站通用。
把这篇当手册用:写文章走第 1~3 步,忘语法查第 2 步,出问题查 FAQ,改配置查速查表。后续有新的配置心得,我会持续更新这篇文章。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!












