如果不用双向链接,思源笔记就是一个普通的类 Markdown 文档型笔记软件。
但是思源笔记里关于双向链接的概念很多,相比其他双向链接软件操作又显得复杂。
词汇列表
从概念上说,其实双向链接很好理解,涉及的对象就是文字 A 和内容块 B,动作行为就是 A 链接到 B。从 B 那边看, A 就是反向链接。A 和 B 组成双链关系。
双链由 Roam Research 创新并发扬光大,从 A 的角度可以引用不同位置的笔记内容,从 B 的角度可以起到收集、汇总、定位、整理、辅助写作等作用,非常有用。
在思源笔记里,因为观察角度不同,A 和 B 会出现很多种叫法。比如下表中的 A,与它在同一列的有很多名词,其实指的都是一个东西。与 B 在同一列的也有很多名词,其实指的也是一个东西。下面来扫清云雾:
概念详解
锚文本
也称锚文字,具体表现就是文字 A,比如下图中的“提及”。极简主题用较紧密的点下划线表示,与虚拟引用下划线以及Markdown 的下划线样式有区别。
引用块
站在链接起点文字 A 的角度看,所引用的内容块就是引用块 B (目标链接/正向链接)
反向链接
站在目标链接/引用块/内容块 B 的角度看,A 就是反向链接。
反链浮窗
- 在编辑页面有反链的地方,右侧会有反链计数,鼠标悬浮在数字上会弹出反链浮窗
- 反链浮窗里面的内容可以直接编辑
- Ctrl+点击面包屑路径中的图标可以跳转到反链所在页面的对应块
反链面板
- 反链面板的结果是当前页所有引用块的反链。
- 由于思源笔记的反链不是紧跟在引用块的下方,所以反链和引用块之间相互查找不是很直观。
- 从当前页引用块找反链:当前页某个内容块有反链时,该内容块右边有反链计数,鼠标划过反链数字可以显示反链所在的位置。这时查看反链面板,可以较容易地找到对应的节略版的反链内容。
-
- 鼠标悬浮在反链面板中的某一项的块图标,可弹出浮窗查看,按上面的上下文图标可以更详细的预览。
- 点击反链面板中的某一项的块图标,如果反链在其他页,当前页就会跳转到反链所在的其他页,可用 Ctrl+[/ Cmd+[ 返回;反链在当前页,才会跳转到当前页对应的引用块。
- 从反链面板找当前页引用块:如果编辑页面内容很长、反链对应的不是页标题、所含的引用块多而分散,往往从反链面板看不出反链对应的引用块具体在什么位置,这时可以:
-
- 鼠标悬浮在反链面板中的某一项的块图标查看反链,接着继续鼠标悬浮在反链弹窗中的锚文字上,弹出引用块窗口(两层套娃),确定其大致位置。
- 如需编辑,上述浮动窗口内可直接编辑。
- 如果要在当前页定位到引用块做其他操作,可根据上述的浮窗位置滚动编辑页面,找到具体位置。
- 采用 Daily Note 每日笔记流、自由式写作时,反向链接面板起内容收集作用,可以将某一反链拖到编辑窗口。注意拖走之后相当于把反链内容剪切到当前页面,而不是复制。
- 如果需要复制,可鼠标悬浮反链块图标,在弹出浮窗中再点击块图标,在弹出菜单中进入“复制”。
- 反链面板有时反链总数与页面分项合计数对不上(比如反链段落块有两个本页的反链,会计算为一个)。
- 删除反链/块引用后,按F5刷新,当前页反链计数、反链面板计数会才会刷新。但文档树面板的反链总数不会刷新,需要点击文档树面板右侧的...,进入重建索引才会刷新。
- 反链如果在段落块,反链面板上该反链右侧不出现计数。
- 使用快捷键
Alt + B
或者点击文档/笔记页标题图标,选择菜单中的反向链接
,能以标签页的形式打开文档的反链面板, 该面板仅显示文档/笔记页的反链
提及面板
提及就是系统自动显示的潜在反向链接,需要注意的点是:
- 没有被引用过的当前页(页名称/页标题),提及面板不会有显示。
- 整个笔记页完全显示时(非聚焦模式)
-
- 提及面板只显示与当前页名称/标题有关的结果。
- 当前页里面即使有其他被引用的块,提及面板也不显示。
- 只有以聚焦模式进入某一引用块时,提及面板才会显示与其相关的结果。
- 当前页的引用块如有本页文字提及,提及面板上不显示。
- 提及面板上鼠标划过提及内容的右侧三点,出现 符号,点击即可生成一个反向链接。
- 理论上,一个引用块在提及面板的结果,是所有已打开笔记本的全局搜索结果 - 反链结果 - 当前页过滤掉的提及结果。
-
- 但是对于列表项、列表块、与列表块重合的段落块,搜索结果会分开来算,因此需要类型过滤
- 实际上,提及结果受设置 - 搜索 - 反链提及中“文档名、命名、别名、锚文字”的范围限制。
虚拟引用
就是系统自动显示的始发链接/引用(此功能需要在设置-编辑器里开启)。极简主题使用虚下划线来表示。鼠标划过虚拟链接,也会出现浮窗。由于开启这个功能后,可能会显示很多虚拟引用,建议酌情使用。
关于虚拟引用的过滤在设置里有两个地方:
- 设置-编辑器面板可以确定是否打开虚拟引用功能,并且可以设置虚拟引用关键字排除列表
- 设置-搜索面板可以对命名、别名、页名、锚文字开启/关闭,限制搜索范围
双链操作
思源特点
思源笔记的双链操作有自己的独特之处,在前面介绍相关面板时已经体现出复杂度。
思源笔记的双链优点:
- 引用的是块ID,不是页名称,锚文字可以任意。
- 引用对象唯一,有引用块 ID 就可以直接链接,所以块可自我引用
- 双链两端的 A 和 B 在文字形式上都可以随意更改,不会影响双链存在,实现了网页超链接一样灵活的锚文字形式。
- 如果建立双链时默认不去改锚文字,那么锚文字就会随内容块B的变化而变化。
思源笔记的双链不足:
- 正因为引用的是块ID,无法像 Roam Research 那样通过批量 [[ ]] 的方式快速建立引用,而批量 [[ ]] 的方式对于建立 MOC 很有用。
软件对比
思源笔记的双链操作和其他双链笔记软件的操作很大不同下面具体比较一下:
操作说明
输入 [[ 生成双链:
- 输入 [[ 或者【【时,思源笔记会给出笔记页名称/层级标题名称的双链引用块建议(也称块引搜索)
- 如果出现的不是你想要的引用块,那么继续输入文字,系统会搜索输入的文字,搜索结果成为双链引用块建议,层级标题名称会默认会排在前面。
- 鼠标悬浮在块图标上可以预览。选择你想要的标题,即可生成一个双链。
选择文字生成双链:
- 选中文字会弹出浮动工具条,点击工具条左侧的双链图标,系统会搜索选中文字,搜索结果成为双链引用块建议,操作同上。
- 搜索结果受类型过滤限制,见后述讨论。
- 选中文字方式新建文档产生双链,锚文本是自动跟随引用块变化,查看链接属性,锚文本是空的。
- 选中文字方式选择既有引用块产生双链,锚文本默认为选中文字,不随引用块的变化而变化;
- 如果选了整个内容块(比如一个段落)作为引用对象,链接处的锚文本会把整个段落复制过来,具体长度由"设置>块引动态锚文本最大长度"决定,默认为64个字符。
-
- 所以这种情况最好是找到要引用的内容块,在该内容块的属性中设置命名或别名。
手动 [[ ]] 方式:
- 手动给若干文字增加 [[ ]],比如要做一个 MOC/TOC/目录/索引,不像 Roam Research 或 Obsidian 那样自动生成出链/引用,在思源笔记里是不生效的。
- 原因是 Roam Research 或 Obsidian 会自动对“页”引用,而思源笔记的生成引用是连到页id,而不是页名(所以思源的页名/文档名可以重名)。
- 这个问题目前官方没有出较好的解决方案,虽然思源有模版功能,某些模版(设置>集市>模版>Me模版)可以将文档树在编辑页面生成 文档树的双链目录/索引,但相比自由输入文字标题并加 [[ ]],模版生成的目录比较差强人意,好在聊胜于无吧。
其他一些注意事项:
- 双链不支持行内文字链接到行内文字(所有双链笔记软件都不支持,html 网页则支持);
- 可以跨笔记本建立双链(注意另一个笔记本关闭时,鼠标浮动将无法取得内容);
- 文字 A (锚文本)可链接/引用到页、块,包括链接到自身所在的页、块;
- 文字 A (锚文本)可以右键修改,只要不改为空白,就不随引用块的变化而变化;
- 文字 A (锚文本)删除引用后需 F5 刷新,引用块右侧、反链面板的数字才会减少或消失。
- 文字 A (锚文本)删除引用后需重建索引,文档树面板的数字才会减少或消失。
类型过滤
双链建议弹窗默认很多,可以在设置>搜索>类型里选择要过滤的块。如果只启用“标题”和“笔记页”(文档),在建立双链时就会清爽很多。
嵌入引用
- 思源笔记的嵌入块引用等于 Roam Research 的“块引用”,其特点都是被引用的块 B 发生了什么变化,在引用位置 A 也发生同步变化。
- 建立嵌入块的方法:在某个块的左侧图标右键单击,选择复制>复制该块为嵌入块,然后粘贴到你想要的某个页面位。可以分屏观察一下,编辑被引用块中的内容,嵌入块的内容也会跟着实时刷新。
工作流
列表大纲双链
Roam Research 开创的 daily note 每日笔记工作流/列表大纲双链是最简洁高效的双链应用方式。具体表现在:
- 所有输入采用大纲列表方式,用缩进体现内容层级关系
- 以页标题作为双链应用的主要形式,少量嵌入块为辅。双链关系中 B 变化,A 自动变化
- 文档页中不添加其他引用块,反链、提及对应一个文档页,清晰易懂
- 锚文字 A 负责传递与关联,文档页 B 负责收集
- 反链、提及可拖入收集页(文档页B),易于整理成篇,写作输出
- 有专门的引用页汇总页面
- 由于引用的是页名称,页面合并方便快捷
- 可以使用 [[ ]] 快速建立MOC类导航链接
与 Roam Research 相比,思源笔记 daily note 每日笔记工作流同样具有前述一些优点,但也有一些特性:
- 思源笔记 daily note 下,文档树的作用是查看引用页面。但 daily note面板内默认产生文档层级过多(虽然可到笔记本设置里更改存放路径,但小白不一定会改)。时间一长,文档树的作用不大(如果数量一多,层次混乱,文档树基本作废)
- 目前没有所有反链的汇总页面
- RR里面标签与 [[ 双链实质一样,思源笔记的标签则相当于关键字搜索
- 思源笔记反链面板与文档页分离,有些不便
- 由于思源笔记是引用块 ID,相同名称的文档页无法快速合并,只能手拖
- 由于思源笔记是引用块 ID,手动给若干文字增加 [[ ]],不能生成块引用
- 由于列表块是容器块,多层套娃情况难以避免,SQL 查询时要做重复项精确排除比较费神
标题大纲双链
文档型笔记的优点在于符合大多数人的笔记习惯,提供的页面元素类型很丰富。思源笔记作文档型笔记使用双链有优点也有一些特性。
优点
- 可将epub等电子书/大文档导入作深度阅读(epub需前置转换为md)
- 以标题块作为双链应用的主要形式,鼠标浮窗直接显示并编辑
- 可建立专门的引用块页面,包含多个标题引用块,不必新建一堆文档页
- 锚文字自由,不影响段落中文字的连续性
- 分屏编辑,便于与双链有关的块操作
- 标题块、段落块是叶子块,SQL 查询简单方便
特性
- 文档页或页内的内容块至少要引用一次,未经引用,不会有反链、提及结果
- 查看页内的引用块是否有提及,需要以聚焦方式进入。但聚焦返回快捷键会返回上级,而不一定是聚焦前的页面,操作逻辑有违常识。(提过 issue 官方建议尝试 Ctr l+ [、 Ctr l+ ] 返回聚焦前光标处)
- [同列表大纲] 目前没有所有反链的汇总页面
- [同列表大纲] RR里面标签与 [[ 双链实质一样,思源笔记的标签为关键字搜索
- [同列表大纲] 思源笔记反链面板与文档页分离,有些不便
- [同列表大纲] 由于思源笔记是引用块 ID,相同名称的文档页无法快速合并
- [同列表大纲] 由于思源笔记是引用块 ID,手动给若干文字增加 [[ ]],不能生成块引用,无法快速创建MOC
专题:思源笔记教程
- 思源笔记安卓手机版数据备份
- 小白思源笔记docker部署——不如想象中美好
- 思源笔记基本功能详解-转
- 思源笔记伺服功能使用教程
- 思源笔记的横排是如何实现的?
- 思源笔记的SQL该怎么用?
- 思源笔记有没有随机回顾的功能
- 小白教程:Centos安装思源笔记docker版及反向代理
- 思源笔记生成静态博客:OceanPress
- 思源笔记的思维导图 - 笔记时间戳 - 手绘功能
- 思源笔记导入epub
- 思源笔记的模板中如何制作彩色字体
- 思源笔记有没有办法在文档内添加TOC(内容目录)
- 思源笔记添加行内备注 - 快速选择连续的块 - 命名和别名有什么不同
- 思源笔记导入电子书最优方案 - NeatConverter转换各种格式为PDF
- 思源笔记挂件如何使用
- 思源笔记移动App如何导出及怎么用pandoc导出Word(Doc)
- 思源笔记安卓App如何使用主题
- 手机思源笔记同步
- 思源笔记 2.0 收集箱功能使用方式
- 思源笔记主题 Dark+的多窗口功能
- 思源笔记使用思维导图之 jsMind挂件
- 思源笔记双链使用详解
- 思源笔记自动生成文档目录的方法汇总
- 思源笔记的注释功能实现(最新版本已有了批注功能)