
这篇文章把本站目前能稳定使用的 Markdown / MDX 写法集中到一起。普通文章可以写成 .md,需要导入组件、写 JSX,或直接使用 Astro 组件时,就写成 .mdx。
Frontmatter
每篇文章开头都需要 YAML frontmatter。本站内容集合会读取这些字段来生成标题、日期、分类、标签、封面图和语言路由。
title、description、date 是必填字段。中文文章放在 src/content/blog/zh/;lang: zh 可以保留,方便生成脚本和人工识别。
标题与目录
文章页会自动把 h2 到 h6 收进右侧目录,所以正文里通常从二级标题开始写。
三级标题示例
四级标题示例
五级标题示例
六级标题示例
段落、换行和分隔线
段落之间留一个空行即可。
如果要在同一段里强制换行,可以在行尾加两个空格,或直接使用 <br>。
行内格式
常用行内格式都可以直接写:
渲染效果:
粗体、斜体、粗斜体、删除线、inline code
也支持自动链接:https://github.github.com/gfm
行内代码还可以指定语言,使用 Shiki 高亮:
渲染效果:console.log("Hello World")
列表
渲染效果:
- 无序列表
- 第二项
- 嵌套项目
- 另一个嵌套项目
- 有序列表
- 第二步
- 第三步
- 已完成
- 未完成
- 重要
- 疑问
- 新增
- 高亮
- 信息
- 取消
本站支持的 checkbox 标记:
| 标记 | 含义 | 图标 |
|---|---|---|
[ ] | 待办 | 默认空框 |
[x] / [X] | 已完成 | 默认对勾 |
[/] | 进行中 | bi:circle-half |
[-] | 已取消 | bi:dash |
[>] | 已转发 | tabler:arrow-big-right-filled |
[<] | 已排期 | bi:calendar-plus-fill |
[?] | 疑问 | bi:question-lg |
[!] | 重要 | bi:exclamation-lg |
[*] | 星标 | bi:star-fill |
["] / [“] / [”] | 引用 | bi:quote |
[l] | 位置 | tabler:map-pin-filled |
[b] | 书签 | bi:bookmark-fill |
[i] | 信息 | bi:info-lg |
[S] | 金额 | bi:currency-dollar |
[I] | 想法 | tabler:bulb-filled |
[p] / [P] | 优点 | tabler:thumb-up-filled |
[c] / [C] | 缺点 | tabler:thumb-down-filled |
[w] / [W] | 胜利 | tabler:trophy-filled |
[u] | 上升 | tabler:trending-up |
[d] | 下降 | tabler:trending-down |
[+] | 新增 | bi:plus-lg |
[B] | Bug | bi:bug-fill |
[a] | 闹钟 | bi:alarm-fill |
[n] / [N] | 笔记 | bi:file-earmark-text-fill |
[R] | Review | tabler:letter-r |
[L] | 喜欢 | tabler:heart-filled |
渲染预览:
- 待办
- 已完成
- 已完成(大写)
- 进行中
- 已取消
- 已转发
- 已排期
- 疑问
- 重要
- 星标
- 引用
- 弯引号
- 位置
- 书签
- 信息
- 金额
- 想法
- 优点
- 优点(大写)
- 缺点
- 缺点(大写)
- 胜利
- 胜利(大写)
- 上升
- 下降
- 新增
- Bug
- 闹钟
- 笔记
- 笔记(大写)
- Review
- 喜欢
引用
写博客最好的时间是刚解决完问题的时候。
第二好的时间是忘掉之前。
引用里也可以包含 粗体、斜体、链接、脚注和行内代码。
图片
图片可以使用相对路径引用 src/assets 里的文件,也可以使用外部 URL。

表格
| 语法 | 用途 | 示例 |
|---|---|---|
_text_ | 斜体 | text |
**text** | 粗体 | text |
`code` | 行内代码 | code |
脚注
这里有一个脚注引用。1 脚注在常规宽度显示在文末脚注区,宽屏显示为靠近引用位置的左侧边注。
HTML 元素
Markdown 中可以穿插少量 HTML。本站样式里已经照顾了这些常见元素:
H2O
Xn + Yn = Zn
Press Ctrl + K
Use highlight for emphasis.
代码块
普通代码块会使用 Shiki 高亮,并自动带复制按钮。支持的常用语言包括 astro、bash、css、html、js、jsx、json、md、mdx、npm、sh、ts、tsx、vue、yaml。
代码块标题
行号
高亮、Diff 和 Focus
可以使用 Shiki transformer 注释控制特定行或单词的样式。
代码块 Tabs
相邻代码块只要都带 tab="...",就会自动合并成一个 Tab 组。
步骤
在连续标题后加 [step],或直接使用数字前缀,可以把它们渲染成带编号的步骤。这个标记或数字前缀不会出现在可见标题里,同一个编号也会显示在文章目录中。
使用 [step]
标题二
这里是第一组步骤的主说明,可以放安装前置条件、目标或注意事项。
子标题一
子步骤可以继续写正文,用来展示更细的执行项。
子标题二
第二个子步骤会和上一个子步骤保持同级编号。
标题三
回到二级步骤后,编号会延续外层步骤。
使用数字前缀
标题二
数字前缀写法适合从别的文档迁移过来,渲染后会移除标题里的数字。
子标题一
子步骤的数字也会重新由渲染器生成。
子标题二
你可以专注写结构,不需要手动维护最终的圆点样式。
标题三
外层步骤会继续显示为第二步。
数学公式
本站启用了 remark-math 和 rehype-katex,可以写行内公式和块级公式。
行内公式:
Callout
.md 和 .mdx 都可以使用 <Callout>,也可以使用类似 Docusaurus / Fumadocs Remark Admonition 的 ::: 语法。支持的名称包括 note、tip、info、warn、warning、caution、danger、error、success、idea。
JSX 写法
<Callout> 适合在 MDX 中使用。note / tip / info 会渲染成信息样式,warn / warning / caution 会渲染成警告样式,danger / error 会渲染成错误样式。
Admonition 写法
Admonition 写法来自 Docusaurus,Fumadocs 的 remarkDirectiveAdmonition 也支持这种迁移语法。标题可以省略,也可以写在方括号里,标题中可以包含行内 Markdown。
Cards
.md 和 .mdx 都可以使用 <Cards> / <Card>。href 会把卡片变成链接,外部链接会自动加安全属性;icon 可以传 Lucide 图标名。
Astro
内容优先的静态站点框架
适合写博客、文档和作品集。
本站组件
无链接卡片
也可以只作为内容分组使用。
MDX 组件
.mdx 是 Markdown 的超集,可以导入 Astro 组件并直接使用。组件默认会渲染成静态 HTML;只有组件自己声明客户端脚本时才会带交互。
也可以手写代码块 Tab 组件,适合需要给 Tab 传更复杂属性时使用。
写作建议
- 正文从
##开始写,让文章标题只来自 frontmatter。 - 同一个主题尽量拆成短段落,目录会更好扫。
- 代码块能写语言就写语言;需要解释文件时加
title="file.ts"。 - 需要强调注意事项时优先用
<Callout>,需要组织相关链接时用<Cards>。 - 有明确顺序的教程步骤用
[step]标题。 - 纯内容文章用
.md;需要导入组件或写 JSX 时用.mdx。 - 后续如果新增、调整或移除 Markdown / MDX 格式支持,要同步更新
CLAUDE.md、AGENTS.md,并同时更新这篇中文指南和英文指南。
Footnotes
-
脚注在常规宽度显示在文末脚注区,宽屏显示为靠近引用位置的左侧边注。 ↩