如果你写过 VitePress 或者 Docusaurus,应该对 ::: warning 这种容器语法很熟。FlatPaper 主题现在同时支持这种写法 —— 你不再需要 note 标签和对应的 endnote 两端围起来,直接用 ::: 开合即可。两种语法可以在同一篇文章里混用,老文章不受影响。
1. 基本写法
1 | ::: success |
效果:
一个 Success 提示
可以理解为 ::: 是 note 标签的语法糖,两者完全等价 —— 渲染出来的 DOM、折叠行为、样式都一模一样,只是更轻、更接近通用 markdown 习惯。
2. 折叠提示
只要在类型后跟标题,就会自动渲染为可折叠的 <details>:
1 | ::: warning 点我展开 |
点我展开
这里是被折叠的内容。
3. 支持的全部类型
和 note 标签共用同一套类型常量,一共 6 种:
一个 Default 提示
一个 Primary 提示
一个 Success 提示
一个 Info 提示
一个 Warning 提示
一个 Danger 提示
对应代码:
1 | ::: default |
4. 与 note 标签的关系
| 维度 | note 标签 |
::: |
|---|---|---|
| 语法风格 | Hexo / Nunjucks 标签 | 通用 markdown 容器扩展(VitePress 派) |
| 类型集合 | default / primary / success / info / warning / danger |
同左 |
| 折叠语义 | 跟在类型后写标题即折叠 | 同左 |
| 嵌套 | 不支持 | 不支持 |
| 代码块中出现 | 会被当成普通文本 | 同左(fenced / indented 代码内安全) |
| 编辑器预览 | Typora 等看到的是裸 Nunjucks | 标准 markdown 容器,预览更友好 |
主题在 before_post_render 阶段把 ::: 改写成等价的 note 标签,再交给 Hexo 后续流程处理。所以所有现有的 note 标签文章不需要改动,新写的可以选用更轻的 :::。
5. 边界注意
:::开合两行必须各自独占一行,前后建议留空行(和 VitePress 行为一致)- 类型名错拼(如
::: succes)不会被识别,会原样输出::: - 不支持嵌套 —— 如果需要在 note 里再放 note,请直接用一层
- 代码块内的
:::(不管是 ``` 还是 ~~~ 还是 4 空格缩进)都会被完整保留,不会误触发改写