OBsidian的硬伤 信息的重构

obsidian的块没有唯一的ID
也就是说块在不同文件中无法移动,一旦进行移动,所有链接到这个块的链接都会断裂

因为无论是ob自带还是Advanced URI产生的链接,块的链接都依据着文件这个主体
导致一个块无法在信息重构的时候从A文档移动到B文档的时候,保证所有相关链接不会断裂

块无法在文档之间流畅的流动,就必须保证所有块在建立之初就要确定其在某个库的某个文档之中

这样的链接结构就为后面的笔记的重构带来了阻碍

不知道有没有办法让链接依据唯一的ID来生成,不依据库以及文件作为上层路径

如:obsidian://open?vault=块ID
而非 obsidian://open?vault=库名&file=文件夹名%2F文件名
也非 obsidian://advanced-uri?vault=库名字&block=块ID&uid=文件ID


20230825: Advanced URI 的作者回复,可以用 obsidian://open?vault=块ID 来完成块链接了

虽然我还不太理解plugin api,直觉告诉我理论上是可行的。当然这一直是obsidian短板。

这样确实有一定的不便,但是块作为元单位我觉得其实意义不大,块如果脱离文件依托,必须要有自己的属性才有其作为元单位的意义,比如说主题、时间、来源等,否则无法管理。问题是如果没有文件,每个元单位都要这样打各方面的标签不太现实,而文件其实节省了这个成本,就算你不填yaml,光一个标题就能让你想起这些,而且有上下文。所以我建议如果要信息重构,可以不要抛弃原来的文档(来源、时间为分类),而是建立新的文档(主题、目的为分类),利用引用进行重构,如果块的内容不需要改变的话,甚至可以利用quicker直接拷贝文本再后面加个链接就行。

1 个赞

ivan-lednev/obsidian-persistent-links: More robust internal links for Obsidian! (github.com) 这个插件能部分解决重构的问题

1 个赞

这个厉害
虽然这解决不了外部链接的断裂

块链接是有其意义的,信息可能需要有时间来源

但知识不一定,知识本身的意义要大过时间标注。

不是所有文章都是来自外界的,自己写的很多东西会需要不断整合压缩,这时候块的重构就非常有意义

如果将散落的信息收集然后堆叠,通过搜索来使用这些信息,那确实文件级别就够了

一旦涉及到知识的重新组建压缩合并,块的可移动就非常重要了

哦哦,那可能确实是我还没用到这种场景,那你的块内容是后期可能需要更改的吗?

会更改 ----

那我觉得目前你可以用quickadd和templater,就是自动化添加以及生成模板的插件,输入的时候就用一个块一个文档,如果有需要可以填yaml,然后自动化发送引用到指定目前的归属文档,然后以后要改就改那个块文档就可以,不知道这能不能满足你的需求。

块的ID还是需要的,块很多时候是依据更大的部分存在的,单独一个块一个文档会非常细碎。
移动的时候也不是一个块移动的,很多时候可能是多个块一起移动。

嗯嗯,我是说“更大的部分”可以放块的引用,如果要改里面内容的话可以直接锁定这个“更大的部分”然后单击不同的引用,可以保证每次打开块都在文档以外的一个界面并替换之前打开的块文档,然后你移动的时候可以直接多个引用一起移动,块的文件存储可以就以日期或者主题为文件夹,如果有需要可以用dataview管理,这样是也会有不方便是吗?

是啊,最直接的就是块有唯一ID。
这些都是为了弥补这个做出的各种规则,增加心智负担。

所以才说这是OB的硬伤,需要用各种规则来弥补的。

直接块拥有唯一ID就能够一劳永逸的事情。

嗯,那你说的URI里不包括路径确实是最省事的办法,就是不知道能不能实现

不过我是个中规中矩的人,为了严格的文件系统,我宁愿这样设置弥补一下 :grinning:

ob的基本单位本来就是一个个md文件,所谓的块引用不过是以段为单位的引用而已。你应该在一个页面中完整地表述一个主题,在此基础上利用引用从不同角度创建你的汇总笔记

1 个赞

问题是知识不是一成不变的,知识应该是在不断优化和整合的。
文档的重构是很常见的情况。

唯一ID是更灵活的方式,对写以及记录的时候的心智压力是最小的。
不用在学习到一个东西的开始就必须在一个主题中完美的写出所有情况,以及将其完美的分类到不同的笔记中。
知识的重构和整合是我们在学习中非常正常的

而不能满足这种正常情况,我才称之为硬伤…

你观念上的块在ob里就是一个个页面,你完全可以在页面上增删你对于这个主题的笔记。你对一个新主题的理解本身就是由浅入深的,最开始你对其的理解也许只是一两句话的概念。随着你知识框架的完善,这时候你应该在页面中创建不同层级的子标题,使你的笔记逐渐丰满。当你发现其中一个标题下的内容足够完整足够独立,你可以将这部分内容转移到新的笔记中,并在原笔记处留下引用链接。就比如从细胞开始逐渐了解到细胞壁和各种细胞器,并为它们创建各自的笔记页面。这是一种从上而下的方法。

你也可以从下而上,从零散的小概念中把握大的主题从而创建新的笔记

最重要的问题是 : OB中的链接如何稳定
最重要的问题是 : OB中的链接如何稳定

您提到的将ob的页面当做一个块,这需要在学习的开始就能够准确的将知识块划分好,并且足够细致
1 注意力会被集中于块的划分,而影响学习的效率
2 块的划分过细又会丧失上下文 以及父子级 这样的重要关系
3 对于是否将知识划分为足够细的块的思考加重心智负担

最终会变成为了一个更好的笔记结构而写笔记,而非是写笔记的时候专注学习,然后在自己对知识理解更加深刻的时候再来优化整合知识的结构

这一切的妥协就是因为ob的块无法用一个唯一ID
使得人们在记录学习的时候需要各种各样的规则来适应软件。

而好的软件应该是让人的精力更加集中于学习和应用知识,而非不断的去搞自己笔记结构来适应软件,才能让知识的链接不断裂

以上扯远了。

回到核心问题
最重要的问题是 : OB中的链接如何稳定,不会在操作的时候断裂

你的笔记名称就是唯一的id, 你既可以使用笔记主题作为名称,也可以按特定编码方法命名,修改笔记名称后其他笔记对它的引用也会一并修改

ob的笔记名称就是你观念中的块id,每一个笔记的名称要被引用必须是唯一的