将思源笔记当做个人知识库真的挺好用, 我最近也发现了一种使用思源笔记拆书中一个处理概念或名称的方法, 以及一个与之对应的 SQL 语句, 现在分享给大家
拆书时处理概念/名称的方法
在阅读一本书时我们会接触很多新的概念或名称, 因此我们可以在阅读过程中为所有遇到的新的概念/名称各自新建一个文章, 在文章的属性中标注命名/别名/备注
- 命名可以设置为中文全称, 用于在搜索时精确查找, 用于虚拟引用匹配等
- 别名可以设置为其他不常用的中文全称, 中文简称, 英文缩写等
- 备注可以设置为英文全称
这一步可以使用快捷键 Alt+[
快速创建一个关于该概念/名称的文章并建立引用
- 通过该文章的反向链接面板可以很方便汇总关于该概念的一些零零碎碎的知识点
- 但是这有一些问题, 通过鼠标悬停该概念的引用时浮窗无法查看反向链接, 因此我搞了如下的 SQL 语句, 用于在文章正文中汇总所有引用当前文章的内容
SQL 汇总所有引用当前文章的内容
SELECT
*
FROM
blocks as b0
WHERE
(
b0.id IN (
SELECT
r1.block_id
FROM
refs as r1
WHERE
r1.def_block_id = '.action{.id}'
)
AND (
b0.type = 'h'
OR b0.type = 'p'
OR b0.type = 't'
)
AND b0.parent_id NOT IN (
SELECT
b1.id
FROM
blocks as b1
WHERE
b1.type = 'i'
)
)
OR (
b0.id IN (
SELECT
b2.parent_id
FROM
blocks as b2
WHERE
b2.id IN (
SELECT
r2.block_id
FROM
refs as r2
WHERE
r2.def_block_id = '.action{.id}'
)
)
AND b0.type = 'i'
)
- 该 SQL 语句可以汇总引用当前文章的块及其次级块
- 列表中引用时, 会汇总该列表项及其所有子项
- 标题中引用时, 会汇总该标题与其内容, 以及该标题所有次级别的标题及内容
- 段落中引用时, 会汇总引用所在段落
- 在模板中可以使用
.action {.id }
获得当前文章的 ID- 注意: 模板中的 SQL 语句不支持换行
{{ SELECT * FROM blocks as b0 WHERE ( b0.id IN ( SELECT r1.block_id FROM refs as r1 WHERE r1.def_block_id = '.action{.id}' ) AND ( b0.type = 'h' OR b0.type = 'p' OR b0.type = 't' ) AND b0.parent_id NOT IN ( SELECT b1.id FROM blocks as b1 WHERE b1.type = 'i' ) ) OR ( b0.id IN ( SELECT b2.parent_id FROM blocks as b2 WHERE b2.id IN ( SELECT r2.block_id FROM refs as r2 WHERE r2.def_block_id = '.action{.id}' ) ) AND b0.type = 'i' ); }}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于