博客日常使用指南:写文章、发动态、加书签(自用记录)

2846 字
14 分钟
博客日常使用指南:写文章、发动态、加书签(自用记录)
AI 智能总结内容由 AI 生成,仅供参考

一段全流程手册,教你从安装 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),分别输入这两条命令检查版本:

Terminal window
node -v # 需要 v22.23 以上
pnpm -v # 需要 11.22 以上

如果提示「不是内部或外部命令」,说明还没安装:去 nodejs.org 装 Node.js(会自带核心),再输入 npm install -g pnpm 装 pnpm。装完重开一个终端再检查一次。

2. 启动网站#

Terminal window
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 换成你的文件名):

Terminal window
pnpm new-post -- tech/my-first-post

这条命令会自动做三件事:

  1. 在 src/content/posts/tech/ 下创建 my-first-post.md;
  2. 写好 frontmatter 模板(标题、日期、slug 都是现成的);
  3. 如果文件名里写了中文,会自动转成拼音作为 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)

图片#

![图片说明](https://example.com/photo.jpg) # 网络图片,直接贴直链
![本地图片](/assets/images/photo.jpg) # 本地图片放到 public/assets/images/ 下

代码块#

三个反引号开头,后面跟语言名:

```js
console.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)#

```mermaid
graph LR
A[写文章] --> B[git push]
B --> C[自动构建]
C --> D[自动上线]
```

时序图(PlantUML)#

```plantuml
@startuml
游客 -> 网站 : 打开文章
网站 --> 游客 : 返回内容
@enduml
```

每篇文章自带的「AI 智能总结」#

文章页顶部有个「AI 智能总结」卡片,不需要你做任何事:

  • 摘要在网站构建时用免费 AI 预先生成好,直接烘进页面,访客秒开;
  • 只在你改了文章内容后,下次构建才会重新生成那篇的摘要;
  • 开关、接口、字数、逐字特效等参数都在 src/config/index.ts 的「AI 总结」模块;
  • 只在构建时把正文发给 AI 一次,不收集任何访客信息。

第 3 步:发布上线#

本地满意后,三连发布:

Terminal window
git add -A # 1. 把所有改动放进暂存区
git commit -m "post: 新文章「我的第一篇文章」" # 2. 打包成一个存档点
git push # 3. 推送到 GitHub

推送后 GitHub 会自动构建,构建完成后服务器自动拉取上线,约两三分钟后刷新你的线上网站就能看到新文章——不需要登录服务器做任何操作。

修改已发布的文章也一样:改文件 → 重新三连即可,链接不变(这就是建议写 slug 的原因)。

常见问题排查#

改了内容但页面没变?

  1. 先确认 pnpm dev 还开着、浏览器开着的是 localhost:4321;
  2. 还不行就 Ctrl + C 停掉,重新 pnpm dev(改 frontmatter 后偶尔需要);
  3. 再不行删掉项目根目录的 .astro 文件夹后重启——这是构建缓存,删了没副作用。

线上要等才生效? 记住分界线:pnpm dev 里的改动只存在于你电脑;只有 git push 之后才会上线。另外改 src/config/index.ts 里的构建类配置(如 AI 总结),本地也要重新 pnpm build 才能验证。

发布日期不对? 见上方时区坑点,时间精确到分时必须带 +08:00。

文章不想让人看到? draft: true 转草稿,只在本地可见。

发动态#

动态是短内容随手记,和文章分开管理,存放在 src/content/dynamic/。

一行命令发一条:

Terminal window
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

两个通用规律:

  1. pages 开关是总闸:把某个页面设为 false,导航、sitemap 里都会自动消失,不用到处删链接;
  2. 图标统一用 Iconify 语法:图标集:图标名,如 material-symbols:home、fa7-brands:bilibili,全站通用。

把这篇当手册用:写文章走第 1~3 步,忘语法查第 2 步,出问题查 FAQ,改配置查速查表。后续有新的配置心得,我会持续更新这篇文章。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

博客日常使用指南:写文章、发动态、加书签(自用记录)
https://li8.me/posts/2/
作者
八奈奈
发布于
2026-09-21
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
八奈奈
记录技术与生活
公告
欢迎来到「二次元宅男录」!这里记录技术与生活,欢迎常来逛逛。
分类
标签
站点统计
文章
10
分类
4
标签
18
总字数
17,017
运行时长
0 天
最后活动
0 天前
文章目录