双链(wiki link)是用双方括号写的一种内部链接,最早来自维基百科的写法。它和普通 Markdown 链接的区别是不需要写路径:只写目标的名字,系统自己去解析。
三种写法
| 写法 | 效果 |
|---|---|
[[Astro]] | 链接到标题为 Astro 的词条,显示文字就是「Astro」 |
[[Astro|那个框架]] | 链接到 Astro,但显示成「那个框架」 |
[[Astro#常用命令]] | 链接到 Astro 页面里的某一节 |
名字是怎么匹配上的
只写 [[内容集合]] 的时候,程序需要知道「内容集合」对应哪个文件。这个站的做法是建一张索引表,键包括:
- 词条的标题:
内容集合 - 文件名:
content-collections - 别名(frontmatter 里的
aliases):Content Collections、content collections
匹配前会统一处理大小写和空白,所以 [[Content Collections]] 和 [[content collections]] 指向同一个词条。
别名是干什么的
同一个概念常有好几种叫法。中文读者写成「双链」,英文写法是 wikilink,代码里又叫 wiki link。如果只让标题能匹配,写别的时候就找不到。
别名把这些叫法都登记上,写哪个都能连过去,但它们最终指向同一个词条。这样就不用为了迁就链接而把标题改成四不像。
反向链接
双链真正的价值不在「能点过去」,在于「能收回来」。A 页面写了 [[B]],那么 B 页面底部会自动列出「A 引用了这里」。
好处是:你不需要维护任何目录。想到哪写到哪,链接织起来之后,某个概念被谁提到过自己就浮出来了。
指错了会怎样
指向不存在的词条时,链接不会消失,而是变成虚线样式,悬停显示「还没有这个词条:xxx」。
这个设计是故意的:它同时是一份待办清单。 翻页面时看到虚线,就知道这里有个概念值得补一个词条。比维护一份写在别处的 TODO 更不容易忘。
和普通链接的关系
双链只是写起来省事的内部链接。需要指向站外、指向图片、指向具体网址时,还是用标准的 Markdown 链接语法:
[Astro 官网](https://astro.build/)