关于反链展示逻辑的不解

本贴最后更新于 231 天前,其中的信息可能已经事过境迁

image.png

如图示例,我在引用页,分别引用了「资源页」,以及「资源页」内的段落。


对此我感到疑惑的是

  • 为什么这个段落的引用关系,也被展示进了「资源页」的反链列表?

之所以感到疑惑,是因为同类的块级笔记软件,页面的反链列表只会显示对该页面的引用关系,而不会像思源这样,将页面内具体段落的引用关系,也显示进去。

我觉得这可能会引出一个问题:

  • 反链关系可读性降低

具体来说,就像示例图中 的 「foo *」,其中的 * 只是一个静态锚文本。所以我其实没办法直接通过观察,得知这个 * 对应的是哪一个段落。而当页面内容变多,然后内部又有多个段落被其他页面以「静态锚文本」的方式引用,这个时候反链关系的可读性,感觉会受到不小的冲击。

所以,我其实不太能理解为什么这么设计,以及有什么应用场景。

  • 思源笔记

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

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

    25850 引用 • 107037 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    9924 引用 • 45065 回帖 • 79 关注

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • deerain 1 via macOS

    lorem ipsum

    1 操作
    deerain 在 2024-10-19 19:19:36 更新了该回帖
  • 88250

    只有这样反链才能精确定位到具体的引用位置,就像你最后举例的 * 锚文本,反链最后一条就可以准确跳转到这个引用位置。

    如果反链只显示到“页面”这个级别,那不是块级引用双链。

    1 回复
  • LLL- via Android
    作者

    抱歉 d 大,可能我表述的不是很准确。我完善一下:

    我提到的页面级别,并不是说只显示“被哪个文档引用”,而是 只显示引用这个“文档”的那个块

    以 2 楼的朋友提到的 roam 和 logseq 为例,相同的示例,这两个软件就不会显示 3 条记录,而是只会显示第一条,因为只有第一条记录是对 “资源页”这篇文档的引用。第二条第三条,并不是引用的“资源页”,而是引用的资源页里具体的段落。

    1 回复
  • 88250

    我不懂你意思,麻烦截个对比图说明吧。

    2 回复
  • LLL- via Android
    作者

    好的,我去 roam 里复现一下

  • LLL- via Android
    作者

    image.png

    这是 Roam 中的相同示例,有如下特点:

    • 「资源页」的 Linked-refs 不会显示那两个 fooooo 的引用记录,因为当前视角是处于「资源页」。
    • foooo 的引用记录,只有当视角聚焦进 fooooo 的时候,才会显示。
    • 下面这个 gif 是聚焦(alt + → 聚焦)进 fooooo 后,Link-refs 的变化。
      Roam 的反链示例聚焦.gif
    2 回复
    1 操作
    LLL- 在 2024-10-19 16:53:43 更新了该回帖
  • 88250

    那可能是因为 rr 在同时引用父块和子块的情况下会把子块去重不计入反链,我们是否要这样做还需要讨论,目前不会轻易改动这些逻辑了,谢谢。

    1 回复
  • LLL-
    作者

    也不能算是同时引用父块和子块时去重,而是只显示“当前视角的引用”:

    就如下面这个 GIF,当我在「引用页」内删除掉 [[资源页]] 这段话后,「资源页」视角里 的 Linked-refs 也就没了。
    至于 fooooo 块 的反链记录,可以 alt+→ 将视角聚焦进 foooo ,在 foooo 视角下的 Linked-refs 是可以查看的。
    (当然,也可以直接点击 foooo 块 右边的引用计数器查看 foooo 块的反链。或者点击 foooo 引用链接 旁边的上标计数器,一样的。)

    并非父子去重.gif

    1 回复
  • 88250

    我的意思就是不把子块包含在内,但是要改这个逻辑要先看社区反馈,我们不能轻易改动。

    包含子块的好处就是一目了然,在父级就可以看到所有引用处,不用聚焦。

    1 回复
  • LLL- via Android
    作者

    这个确实是的,在当文档篇幅不是很大的时候,可以做到一目了然。

    但当文档的内容篇幅变大后,如果内部的一些块 又被多次引用,然后外加对该文档自身的引用,那么反链列表会变得很庞大,并且难以区分引用的是哪个本体。

    这可能会对双链体验上造成一定影响。D 大觉得呢?

    所以或许可以在反链窗格里,追加一个按钮,来进行模式切换。(或者是其他更合理的设计)

    1 回复
  • 88250

    如果这两种模式的需求都较多,那么会考虑加开关的。但目前来看并没有,所以暂时不动,继续收集反馈,谢谢。

    1 回复
  • LLL- 1 via Android
    作者

    好吧,那只能期待社区的反馈了。之前用 roam 和 logseq 这类标准大纲 app 时,习惯了他们的这种反链逻辑。

    1 回复
  • i1356 2 2 赞同 2 评论 via macOS

    用户很多时候并不知道自己需要什么,只有见过好东西后才会知道原来还可以这样。

    反正思源的反链我是没有用的欲望。直到见过 logseq 后,才知道双链与大纲原来可以这样舒服。

    1 回复
    特别赞同第一句
    HugZephyr 1 赞同
    展开讲讲。
    xnyshu
  • LLL- via Android
    作者

    @88250 我感觉这位朋友说的有道理

    1 回复
  • 88250

    欢迎在社区发起一个投票贴来帮忙统计,我们置顶一段时间。

    2 回复
  • YRJ0422

    D 大,我在论坛发了一个讨论投票贴,可以参考一下,统计探讨:标签修改成双链形式的可行性探讨 - 链滴 (ld246.com)

    1 回复
  • 88250 1 1 赞同

    抱歉,标签不会考虑改动了。

    1 回复
  • 88250

    不考虑标签和引用功能重叠,这个 issue 稍后会关闭。

    1 回复
  • LLL-
    作者

    收到!这就去发

  • YRJ0422

    经过今天的探讨,发现思源如果完全按照[[ ]] 是可以代替 Logseq 去写 Daily Note 的,文档标签可以在第一行用 tags:: [[ ]] 来代替文档标签是一种可行的方案。

    使用原始的标签也未必就不好,同样可以汇总到搜索界面,而且可以显示图标,在搜索界面也会显示出标签,只不过跟双链相比,不足之处是标签系统中的每一个标签都是唯一性的,而双链可以设置别名,把不同的关键词聚合在一个里面。而思源的标签可以轻松的用 SQL 汇总,也算是一个优点。

    关于标签改进成双链以后的优势,标签绑定文档后标签唯一性的问题就不存在了,多个标签可以绑定在一个页面下,而打出来的每一个标签都可以汇总在对应绑定的标签文档的反链中,在搜索的时候标签还是搜索特定标签保证唯一性(这点如果改成把同类标签都显示可能有些人不适应),这样就统一了双链和标签以及块之间的割裂感的问题,让标签有更大的使用价值

    其实从 Logseq DB 版把标签改成数据库的方式的角度来说,可能保证[[ ]] 的唯一性才是正确的思路,而不是 #和[[ ]] 是一种东西,但我觉得在思源的体系中标签改进成双链标签要更加的优雅和易用

    在别名方面,思源中每一个块都有命名和别名系统,一定程度上代替了 Logseq 中 alias 的功能,主要的缺陷是思源基于 ID 进行的双链,不能做到双链[[生病]] 和[[生病记录]] 到同一个页面,但是别名可以在块引用的时候显示和检索出来这也算是变相的解决了这个问题。

    另一方面思源本身有反链面板和引用计数,做的足够完善,相比 logseq 上手难度确实是高了不少,不过带来的体验就是可以管理文档同时写 Daily Note

    @88250 这是我对改成双链形式的一些想法和总结,还是希望可以实现的

  • Wetoria 1 赞同 via macOS

    你只考虑了反链的展示结果,但没有考虑反链的展示形式。

    如果 Roam 和 Logseq 都是你说的这种情况,我认为他们是在底部展示的反链,因此只 展示当前顶级块的反链 是很合理的,也就是文档,或者聚焦后的反链。

    但是同样解决不了 如果一篇长文中的子块被链接的话,没办法快速预览哪些子块有反链。在你这个例子里,如果 资源页 没有被引用,只有 fooo 的,并且 fooo 是几千几万行中的一行。要在 资源页 中找到 这个块又被引用 是极不方便的。如果这俩个软件有方法,还请告诉我。

    1 回复
  • LLL- via Android
    作者

    认同 这确实是一种需求。

    我有一个想法。除了开关以外,或许可以通过某种方式,分割开本体反链和子块反链。例如用一个可折叠的 label(如 label 叫“子块反链”),label 下面是子块反链。然后默认是折叠的。

    1 回复
  • 在反链面板顶部增加选项或者开关,可能是最符合操作习惯的了。 @88250

    至于更优的交互,交给插件可能会好一点。比如反链筛选面板

请输入回帖内容 ...

推荐标签 标签

  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 77 关注
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 734 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    730 引用 • 1281 回帖 • 2 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    133 引用 • 796 回帖
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 1 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 3 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    125 引用 • 74 回帖
  • OpenCV
    15 引用 • 36 回帖 • 6 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    108 引用 • 295 回帖 • 1 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    10 引用 • 15 回帖 • 6 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 794 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖 • 1 关注
  • 笔记

    好记性不如烂笔头。

    310 引用 • 794 回帖
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖
  • 一些有用的避坑指南。

    69 引用 • 93 回帖 • 1 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 248 回帖
  • abitmean

    有点意思就行了

    33 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 76 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 92 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 402 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    6 引用 • 26 回帖 • 543 关注