对 daily notes 的传递型双链仍有使用上的一些困惑

什么是传递型双链,见 @deerain双向链接时代的快速无压记录。简单来说,双链分两种,传递型双链和关联型双链。

我一共有这样几个问题。

写新双链会新建文档块,而文档块没法用传递型双链传递到其对应的主题

思源笔记不允许建立空的双链,新双链会自动生成一个对应文档块。

所以,在写笔记的过程中新建双链所新生成的文档块怎么办,这个文档怎么传递?很遗憾,文档块没法传递。

为什么要传递?因为很多时候需要呀。比如,大学上一门[[高等数学]]课程,我想把它传递到[[我的大学课程]]、[[数学]]等主题处呢。

对大家来说这是不是个问题?如果是的话,你是如何解决的?

我目前想了两个办法:

  • 事后解决:先不管它,以后需要的时候,再手动把文档块转变成标题块,这样就能用传递型双链传递了。
  • 事前解决:在建立新双链前,先写好这个块。
    • 但这样的话,开始的时候要写好多好多块,得一直传递到「我想要传递到的尽头处」才能停。

顺带再问一个相关问题:要是把思源里某些笔记同步到博客上,是不是这个笔记只能是文档块?

如何在反链面板上单独筛选出传递型双链?

什么情况下需要区分传递型双链和关联型双链呢?

我们知道,传递型双链是用来把该笔记「传递」给相应主题的,也就是说该笔记「属于」这个主题;而关联型双链就是用到了这篇笔记,提了一句。

所以使用场景就很明显了:在汇总整理某个主题的笔记时,要汇总到正文里的,主要就是传递型双链需要传递的内容。因此在汇总的时候,我就希望尽量不要看到关联型笔记的内容「混杂」在里面来干扰我。如果反链面板中内容太多,这两者就不好区分,就很难办。

我觉得不用举例子了。

有两个解决办法,但都有缺陷,没法用:

  • 肉眼辨识反链面板中的传递型双链,把传递型双链全都拖到正文里,然后再整理。
    • 但是哈桑的原文也说了,这往往并不是一个好方法。
  • 用 SQL 来筛选?我不会这东西,不知道能不能筛选出来?
    • 我强烈怀疑筛不出来。如果传递型双链仅仅是 - [[]] 的格式,我觉得还能用 SQL 来搜;但如果传递型双链有多个呢?如果这一行里还有别的内容呢?比如 - [[思源笔记]] [[OneNote]],我要筛选作为传递型双链的 [[OneNote]] 怎么搜?我觉得 SQL 肯定筛不出来。

总之,思源笔记没法区分两者,没法分别筛选出两者,至少我没找到方法,搜也没搜到。

思源笔记的「虚拟引用」功能极大地缓解了这个问题,平时再也不用手动链接概念(如数学概念、数学定理)了;但是还不够。

对大家来说这是不是个问题?如果是的话,你是如何解决的?

使用 对 daily notes 的传递型双链仍有使用上的一些困惑 - Wetoria 的回帖 的方案,可以用 SQL 块嵌入的方式展示。但是块嵌入的内容没法直接拖动到正文里,多了步骤,不如反链面板方便。

二次整理反链时,如何仅查看尚未被整理到正文里的反链?

对某个主题进行第一次整理时,只传递到本主题的笔记,可以拖进来;传递到多个主题的笔记,就得考虑块引用块嵌入了。

好,现在第一次整理结束。此时反链面板中剩余有关联型笔记,以及传递到多个主题的笔记。

后来我又给这个主题传递了一些笔记。

那么,第二次整理时,面对反链面板中许许多多的反链,如何筛选出「尚未被整理到正文里的反链」?有没有 SQL 块能实现这个功能呢?(在反链面板中,按照时间排序并不一定能解决问题。)

或者说得文绉绉一点:如何用 SQL 筛选出当前笔记里 未出链的 所有「传递型入链」笔记?

双链无法建立标签那样的层级

这个困难我觉得我就不用细讲了,大家都清楚:

  • 双链没有层级的话,传递就不知道传递给小主题还是大主题更合适;
  • 双链有层级的话,那其实就同时具有了文档树的绝大部分缺点。

总之有没有层级都有其优缺点;当然,还是有层级的好,有层级我还能选择要不要层级,没层级我没得选。

我觉得除非能做成双链能同时属于多个父级才能算没有缺点。不过这方面思源也不可能改了。以后会有笔记软件这么做吗?

我想知道大家在这方面是如何处理的。

比如,主业、工作学习相关的笔记当然是好好写,建立专门的索引目录;

那其他的,比如分析看过的电视剧动画里几段剧情对比、几个角色分析,看到自己泛泛地感兴趣的历史政治信息,软件/系统对比分析,衣食住行经验技巧,人生感悟,商业行业分析,等等,传递的时候传递给具体一点的主题,还是粗一点的主题?后期浏览查阅时,你们是怎么做的?

比如,

  • 思源笔记的使用技巧应该传递给[[思源笔记的使用技巧]]还是[[思源笔记]]?
  • 写思源笔记聚焦功能的用处应该传递给[[思源笔记的聚焦功能]]还是[[思源笔记的使用技巧]]还是[[思源笔记]]?
  • 考公的优势劣势应该传递给[[考公]],还是[[公务员]],还是[[考公考编]],还是[[公务员事业编]],还是[[找工作]],还是[[找工作与职业生涯经验]]?还是传递到其中的多个?
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    18832 引用 • 70499 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • [deleted]

    1 操作
    hqweay 在 2024-04-12 01:15:58 更新了该回帖
  • 其他回帖
  • Wetoria 1 3 评论

    先回答两个问题

    1、新建文档的问题

    新建文档不应该需要整理,这样不是“无压记录”。

    我有一个【待归类】的文档,所有新建的主题,全都一股脑丢里面,不整理。目前 287 篇。

    image.png

    只有这样一股脑的 Inbox,才能真正实现无压。

    至于很多人对【内容结构】有要求,比如你提到的【【我的大学课程】】、【【高等数学】】,这种关系可以日后通过调整文档路径,以及制作 MOC 解决。

    2、筛选传递型双链的问题

    使用 SQL 的正则表达式是可以筛选出传递型链接的,大概格式是 fcontent like '^(\s*\(\(id .*?\)\)\s*)$'。我没做测试,随手写的。大概就是,只查询 fcontent(第一个节点的内容)只包含引用及空字符串的格式。

    然后再看看整理的问题

    1、块引的层级问题

    最近没怎么思考,块引的层级结构怎么设计比较好,所以下面是一些目前思考过的内容。

    我自己在思源里是有【【经验 | 思源笔记】】、【【思源笔记】】、【【经验 | 思源笔记 | 插件开发】】等主题的,目的就是为了实现【层级】的概念。

    并且为了方便链接,对这些主题增加拼音别名,就可以做到中文输入法下输入 【【jingyansiyuan 回车 回车 就能快速绑定。

    后来发现,用 enhance 插件,然后对 【【经验】】、【【思源笔记】】、【【插件开发】】这样的三个主题进行组合就行了。

    而目前的底部反链,每次都需要重新选择一次这些标签,因此计划加上保存自定义筛选条件的功能,点击就把筛选条件变为保存的结果。

    但是这样做还有一个问题,那就是丢了层级关系结构。因此我也需要找一个时间来思考一下层级关系结构是否必须,毕竟【组合优于继承】,【【数学】】也不一定只属于【【大学】】,也有可能是【【初中】】、【【高中】】。

    但是这样加块引又会带来一个问题,也就是每次维护的时候,需要输入一批块引,这很麻烦,而我也很懒。因此考虑过增加保存常用块引的模板,快速插入。

    这一部分的思考目前就到这了,没啥状态继续想,就当抛个引子

    2、反链内容的整理

    我不知道有多少人像我一样,是 DN 和整理分开的。

    如果是写一篇文章,我会在 DN 中先写完,然后再通过【拖拽 重复】这个功能,把写好的文章内容,整理到对应的文档里,然后进行发布操作。

    先不管原因,最后这篇文章的正文和反链面板里,会出现同样的内容。实际上也就是帖主问的”如何仅查看未被整理的反链“。

    关于这个问题,实际上我也想过在底部反链里增加一个标记隐藏的功能。当标记为隐藏后,就不出现在列表里,而是在一个隐藏的区域里。

    这样就能对反链进行整理了。

    但是这个功能,实际上也可以通过前面说的,增加类似 [[done]] 这样的块引,然后加上未开发的保存筛选条件的功能就能做到。

    但是帖主遇到过多个块引的整理问题了,这个我之前没遇到过,所以暂时也没想过。


    先说这么多抛个印子,看看大家的意见,我再想想后面如何设计。

    目前来说,底部反链增加【保存筛选条件】的功能,基本上能满足很大一部分的整理工作了。

    「仅查看未被整理的反链」可以用「把双链转为超链接(单向链接)」来实现,见 对 daily notes 的传递型双链仍有使用上的一些困惑 - Wetoria 的回帖
    LoneFireBlossom
    又想了想,单独筛选出传递型双链得是在反链面板上,不能用 SQL,SQL 展示的内容都是块嵌入,没法直接拖动,所以此路不通(这方法和用 Obsidian 打开对应文档,剪切粘贴/合并文档一样麻烦了)
    LoneFireBlossom
    @LoneFireBlossom 我知道呀 ←_←,但是不代表 sql 不能搜索嘛。
    Wetoria
  • suiji 1 评论

    我想啊,仅限于我的体验啊,只要不嫌开浮窗麻烦,就没这么多事。

    还有一个就是你提到的,在 phm 里把故障诊断整全地拖过去,还有之前提到的嫌弃日记式组织的标题与内容脱离,一篇日志下多部分内容无法集中在一个视域里展示。这些问题我也有,对此我有个思路,但还没付诸实践。

    在我看来,这些问题都可以归并为内容卡的展示与存放问题。phm 里拖入故障诊断之所以不可行,是因为文档标题不归属正文,它既不是标题快,也不能有行内的引用、加粗等格式。文档块(文档树)与标题块虽然互通,但又没有完全通。我之前特别开帖子反映过,D 大回复说就是不可行。自那我就明白了,把一个主题块制作独立文档置于文档树下是有缺陷的。除了 phm 整个拖入故障诊断之操作麻烦之外,还有标题不能有引用的问题,不然几次移动转化后,引用就丢失了。所以我就在想,似乎,就在 dailynote 里新建文档是不是也不是不行?要新建主题,比如 phm?就单独开一个标题 PHM,然后在需要的地方引用这个标题完事。如果需要整理,就进聚焦。

    关于 daily note 标题与内容脱离,一篇日志下多部分内容无法集中在一个视域里展示这个问题,普通的办法还是该用标题等级还得用,然后用插件/挂件在开头处生成本文档的目录。

    我现在想说的,还未实践的新想法是:用数据库。卡片不再往文档树放,也不再独立为文档 page,就是 dailynote 中的一个标题,但是把它添加进数据库中,用数据库管理条目,添加日期属性,按日期筛选。

    声明:我还没有用过数据库,以上是我云的。但怎么说呢,我觉得道理应该是成立的。如果题主或是他人愿意实践一下呢,trollface trollface 无论成败,还请告诉我一下 🙏 唉,我太懒了,抱歉抱歉。

    第一,你写得确实太简单了,我不清楚你具体是怎么想的。第二,我之前想过用数据库了,很快放弃了这个想法,在我设想的实践中,之前我已经想过,数据库添加太麻烦,编辑信息太麻烦,事后在卡片处浏览太麻烦,积累上千上万条卡片后一个数据库能否正常浏览都是未知数,失去了「反链即正文」的特性。第三,我已经想通怎么做了,之前提过的问题都不再是问题。
    LoneFireBlossom 1 赞同
  • Sheep 1 1 赞同

    抛砖引玉一下吧。

    一、写新双链会新建文档块,而文档块没法用传递型双链传递到其对应的主题

    先看下 Logseq 中是怎么处理的吧。在 logseq 中,可以为某个页面设置标签(lsq 中的标签和页面是互通的),比如在[[高等数学]]这个 page 中打上[[我的大学课程]]和[[数学]]两个标签:

    image.png

    之后进入[[我的大学课程]],就可以看到被传递到这里的文档了([[数学]]类似,不再赘述):

    image.png

    在思源笔记中,标签和页面并不等价,自然不可能用这种方式实现。实际上,我也确实没发现太好的方式(如果有,欢迎其他人补充)。我可以提供几种思路。

    1、制作 MOC

    这种方式就需要手动维护了,比如在[[我的大学课程中]]这样写(可以用块引,也可以用块超链接):

    image.png

    同理,[[数学]]页面中也可以这样组织。但这样会带来额外的维护成本。

    2、在要传递的文章正文中使用块引

    如下图所示,在[[高等数学]]中使用块引可以将其带到要传递到的页面。

    image.png

    在[[我的大学课程]]的反链面板中,可以看到传递过来的页面。这样的缺点是,如果[[我的大学课程]]仍然有大量传递过来的文本、图片等内容,可能容易混淆。但可以使用一些特殊标记,标识下这个是被传递过来的页面,比如上面使用的 tags 块引。之后配合思源笔记增强插件的筛选功能,可以筛选出所有被传递的页面:

    image.png

    3、放弃维护文档之间的传递

    我个人是没有使用以上方法的,因为在我的实践中发现,我在同一时期频繁需要传递的主题其实就那么几个,在脑海里完全可以记住他们之间的关系,日后也不会忘记。比如大学时期,我可能同时上了五六门课,这些课都属于[[我的大学课程]],我很清楚,那么还真的有必要非要在笔记当中写下来吗?是不是陷入了形式主义陷阱呢?

    我最近接触较多的主题是[[CSRF]]、[[CRLF]]、[[XSS]],这些都属于[[Web 安全]]主题,我脑海里很清楚,而且在我整理了这么多关于这几个主题的笔记后,在我做了几十张相关知识点的闪卡后,我也有把握这种传递关系我不会忘记。或者说,当未来某一天我需要梳理[[Web 安全]]涉及到的知识点时,我才需要将这种传递关系搞出来,现在的我只要专注于最小主题学习即可,把这种苦恼传递给未来即可。因为未来你大概率会发现,除非你是要发博客,否则个人笔记完全没必要做这些事情。

    当然,思源没有很好的原生方法实现 Logseq 的效果,是一种功能缺失:标签和双链不等价。之前群里、社区不止一次提到过,但 D 大并不打算继续开发,很遗憾。

    二、如何单独筛选出传递型双链?

    答案是:没有必要筛选。

    传递型双链和关联型双联只是为了方便理解,实际上你可以以任意方式来使用,因为最终这些东西都会传递到你想要传递的那个主题的反链面板中。作为用户,作为记笔记的人,你需要记录就行了。

    无论是这样:

    - [[思源笔记]]
      - 思源笔记今天更新了xxx特性,我觉得它可以实现yyyyy功能。
    

    还是这样:

    - [[思源笔记]]今天更新了xxx特性,我觉得它可以实现yyyyy功能。
    

    甚至是这样:

    - 思源笔记今天更新了xxx特性,我觉得它可以实现yyyyy功能。[[思源笔记]]
    

    他们最终都会在反链面板中展示出来,供你参考。还是第一个问题的答案,不需要拘泥于形式,传递过来,需要的时候自然会用上。

    我自己有个习惯,我不喜欢在编辑某段正文的时候去想要把它传递给哪个主题,所以我写了个代码片段,独占一个节点的块引使用双括号样式,而节点有其他内容时,使用标签样式,效果见我主页帖子。当然,这个其实也没有必要,只是个人习惯。

    三、二次整理反链时,如果仅查看尚未被整理到正文里的反链?

    可以给每一个已整理的反链打上一个块引,比如[[done]],然后使用 enhance 插件,排除掉带有[[done]]块引的内容即可。

    image.png

    image.png

    四、双链无法建立标签那样的层级

    这就回到了第一个问题,思源缺少 Logseq 那种【标签与双链等价】的功能。要么手动维护层次(没必要),要么完全忽视层级,等之后整理时利用拖动为标题法、转移引用等功能进行调整。

    1 回复
  • 查看全部回帖