Skip to content

示例库

本页截图与代码均来自随插件发布的演示库,可直接打开对照。

下载中文演示库

Frontmatter 路由 ​

在设置页写一条 album = trip → wide,这篇笔记就会套用 wide 模板;匹配是精确字符串比较,顺序从上往下。

一条路由的结构 ​

字段含义示例
字段名frontmatter 的键album
字段值要匹配的值trip
路由模板命中后使用哪个模板wide
启用是否参与匹配开
yaml
---
album: trip
---

这篇笔记写 album: trip,就命中上面那条路由。下面是同一张 1:1 标定图在两个模板下的差别:

markdown
![方图](assets/ratio/ratio-1x1.svg)
1:1 方图在 wide 模板下占 68% 栏宽并居中

在 auto 模板下它约占栏宽的四成;命中 wide 后变成 68%(760px 栏宽下约 517px),仍然居中。

竖图则不同;wide 的第三条规则将其压窄并固定靠左:

markdown
![竖图](assets/ratio/ratio-2x3.svg)
2:3 竖图在 wide 模板下压窄并靠左浮动,文字在右侧绕排

模板的主要价值在于:同一批素材更换模板即可改变整套节奏,无需修改任何单图参数。

匹配规则 ​

行为说明
比较方式键与值都做 trim() 后精确相等;Trip 不等于 trip
顺序从上往下,第一条命中即停止
缺省没有命中任何路由时使用 auto
优先级图片自己的 ag:width / ag:layout / ag:side 高于模板规则

数组值会被拼成字符串 ​

frontmatter 里的数组会被拼成逗号分隔的字符串再比较:

yaml
tags: [a, b]      # 实际参与比较的是 "a,b"

所以 tags 不适合做路由键;除非每次都写入完整字符串。用单个字符串字段(如 album、role、series)更可靠。

适用路由的场景 ​

场景建议
同一库里教程要小图、作品集要大图用路由,按目录或属性分层
只有一两张图要特殊宽度直接写 ag:width,不要为两张图建模板
整篇都要窄一点用路由,比在几十张图上重复参数省事
需要按文件夹区分路由只认 frontmatter,不认路径;在每篇笔记里写一个字段

排查 ​

现象原因
路由不命中大小写不一致,或值前后有空格(插件会 trim,但键名不会模糊匹配)
命中了但没变化模板规则为空,或图片都写了 ag:width
改了模板但笔记没变模板是按「当前笔记」解析的,切换笔记或重新打开才会重算

下一步 ​

相关阅读 ​