【共同探讨】移动块 / 反链 / 快速无压记录 / 标签

本贴最后更新于 1182 天前,其中的信息可能已经天翻地覆

1、【bug】把一个被引用的块拖动到另一个文件里,虽然引用关系还在,但是反链里手动刷新看不到结果,需要重启

2、用剪切粘贴的方式来跨文件移动块是最方便的,但是引用关系会丢失,分屏拖动的方式有点不方便,而且这种拖动对多个块的情形不太友好,需要一个个拖动

3、「把内容从反链区移到正文」是 Conor 式的双链笔记流程中非常重要的一步,虽然思源可以靠浮窗编辑反链的内容,但是因为 2 的原因让这一步不是很方便

roam research 作者 Conor 预设的双链使用流程大概是这样,这是 daily notes 中的记录:

image.png

logseq/资料 这个页面中,可以直接从反链里把这一坨内容全部拖到正文里慢慢组织:

image.png

思源的列表块在侧栏反链里只展示段落块,配合不了这个工作流。靠 SQL 呈现的反链对于列表块也会有类型重复。所以标题块比列表块适合这个场景,但是如果想把反链的标题块移到正文里,会遇到两个问题,首先是 2 里提到的批量剪切会导致引用关系丢失,其次是对标题块做的一些单独处理在浮窗里好像失效了,在我这里不能把浮窗里的标题块转换成文档,可能是 bug。

因为上面这些原因,思源不能完全复刻大纲双链笔记那种流畅无压的 daily notes 记录流程,如果要改进,也要配合软件架构,所以我也不好说具体可以怎么改进

4、因为反链的可操作性跟大纲型的软件存在较大差距,想要快速无压记录的话就会想到在 daily notes 里用井号标签。

改进标签的用户声音一直都有,现在也有了 #2431 文档块支持标签的计划,但是我感觉光把标签看做标签是没法彻底改进标签的。标签的问题和反链的问题其实是同一个问题,即加了标签的内容的展示形式不好,而且标签面板和反链面板一样缺乏可操作性。前面举的反链不方便的例子全都可以直接照搬到标签上,比如加了标签的列表块在标签面板里完全无法展示下级,加了标签的标题块在标签面板里用浮窗移动块有问题。

这些问题会让将来的标签变成一个只能用来标记文档块的东西,就像印象笔记那样,这其实也没什么毛病,但是如果反链和标签的呈现形式和可操作性得不到优化,想在思源内部做到快速无压记录就需要使用者本人有足够的方法论支撑,这样一来普通用户的体验很难比得上能直接使用 daily notes 无压力畅快输入的大纲双链笔记。Conor 式的 daily notes 流程虽然未必适合所有人、也遭受过一些舆论上的妖魔化,但是它实际用起来确实是很舒服很上瘾的,而且这种工作流目前来看其实是最适合小白专注记录的。

根据思源目前的形态,主要的使用方式可能是这两种:小白用户只用到文件树 + 编辑器,高阶用户自己设计一套工作流,这两种方式其实都有很高的心智门槛,文件树带来的心智压力并不小,也就是说即使是小白用法一样不够轻松。无压记录的工作流真的需要功能上的支撑,围绕 daily notes 流程的功能(反链和标签的呈现方式和可操作性)如果不加以优化,可能小白用户的使用体验还追不上 bear,想追上大纲双链笔记就更难了。

当然快速无压记录也只是笔记应用的一个方面,别的方面还是可以差异化竞争的。但就算不考虑 daily notes 流程,这些功能其实也该优化一下,daily notes 流程只是提供一个思考的切入点。

没什么具体建议,仅探讨。

  • 思源笔记

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

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

    22353 引用 • 89453 回帖
3 操作
deerain 在 2021-08-28 00:15:45 更新了该帖
deerain 在 2021-08-11 17:30:23 更新了该帖
deerain 在 2021-08-11 17:21:30 更新了该帖

相关帖子

优质回帖
  • 好问题。尽管不易察觉,但这两种方式有极其巨大的区别。

    假设今天我逛了一下 logseq 论坛,看到有人说新版本通过修改 :ui/show-empty-bullets? 变量可以显示或隐藏内容为空的 bullets,于是我想把这个配置方法在笔记软件里记录下来。

    然后我打开 logseq 做记录,步骤如下:

    1. 打开或转到 logseq 这个软件,如果当前页面不是 daily notes 就再按一下快捷键跳转到 daily notes 页面

    2. 在 daily notes 的第一行写下:

      - [[logseq/配置]]
        - `:ui/show-empty-bullets?` 变量:显示或隐藏内容为空的 bullets
      
    3. 记录结束。去做别的事。

    如果使用 typora,步骤如下:

    1. 为了最快捷地打开 logseq - 配置.md 这个文件,当然是要好好利用各种搜索型效率软件了,于是我在 utools 里搜索 logseq 配置,结果发现我并没有这个文件

      • 这个时候第 1 个差别就已经体现出来了,在 logseq 里,我永远不用回忆 logseq/配置 这个页面是不是已经存在,直接在 daily notes 的第一行开写就行了

    2. 搜索未果,我开始考虑换个关键词搜索,万一我以前创建的文件名叫 logseq - config.md 呢?换了几个关键词搜索,发现我以前真的没做过这方面的记录

      • 第 2 个差别出现了,在 logseq 里,我不需要考虑自己之前是不是已经用别的名字创建过 logseq/config ,这种文件,我只需要直接在第一行写下 - [[logseq/配置]] 就行了,别的什么都不用考虑

      • 第 3 个差别:就算我以前已经有了 logseq/config 这个 page,那也不需要管它,因为 logseq/配置logseq/config 这两个页面一定会在 logseq 这个父页面下共同展示,我可以在将来合并它们

    3. 既然以前没有对应的 md 文件,那我就创建它吧。创建一个新的 md 文件虽然人人都会,但是我在创建的时候就需要给它在文件系统上安排一个具体的位置,我是把它放在 软件使用 文件夹下还是放在 知识管理 文件夹下?

      • 第 4 个差别:在 logseq 里没有烦人的新建文件流程,就算我根本不对 md 文件分类,新建文件这个步骤还是烦人

    4. 终于新建好了 logseq - 配置.md 这个文件,但是我忘了刚才想记录的是什么

      • 第 5 个差别:用 logseq 记录,到达路径很短,心智负担为零;用 typora 记录,到达路径很长,心智负担巨大

    5. 查看系统剪贴板,回想起了要记录的东西,开始记录

    6. 记录完毕,我开始了每日固定的读文献时间。30 分钟之后,我有一条突发的阅读心得想快速记录下来,于是我唤出了 utools,再次重走上面的曲折心路历程。

      • 第 6 个差别:如果是用 logseq 记录,我只需要再次在 daily notes 页面的第一行写下:

        - [[文献/文献名]]
          - 这个思路真是妙啊
        - [[logseq/配置]]
          - `:ui/show-empty-bullets?` 变量:显示或隐藏内容为空的 bullets
        

    所以,这两种方式看似差不多,实际上是天壤之别。笔记的核心首先是记录,而 Conor 流程把使用者在记录时的心智负担降到了接近于 0 的水平,这种流畅无压的记录方式能极大促进一个人记录更多的东西。

    我这里说的还仅仅是记录阶段,后面的阶段差距更大。

  • deerain 1 1 赞同

    按照大纲双链笔记的流程,一开始在日记文件里写下「判断标准」这部分内容的时候,就应该当场立即用某种方式把它传递给「SOP」这个文档,这个传递方式就是双链:

    # 2021-07-03.sy
    
    - [[SOP]]
      - 几个好课题的判断标准
        - balabala
        - kalakala
        - xxxxx
    

    将来集中整理 SOP 这个文档的时候,从反链里可以直接把 - [[SOP]] 和它下方的所有列表项拖进正文然后慢慢整理,这种流程比一开始不加双链事后再去 SOP 这个文档里引用要稳妥得多。

    在思源里实践不了这个流程是因为打开 SOP 这个文档的时候,看到的反链只有以下信息:

    ▼ 2021-07-03.sy
      ¶ SOP
    

    这个反链只显示了一个段落块,- [[SOP]] 下级的内容全都没有直接展示。如果反链面板优化一下展示方式和可操作性,就可以实践上面说到的流程了。所以问题依然是功能需要优化。

  • deerain 1 1 赞同

    我们讨论的是"究竟选择那种方式会比较好?" 是完全无压力但后续整理麻烦的 Dailynote 还是选择稍微有点压力但是后续整理会轻松点的方法? 我也不知道, 这个心智压力若是实在想完全没有, 那就选择 DN, 若是想方便之后整理还是接受点心智压力就选其他方法, 感觉这个比较随人, 但我已经习惯了开 portal 了

    这段总结得很到位,在认清两种方式的差异之后,剩下的就是个人选择。不过这个选择大多数人不需要纠结,因为不用 remnote 这个软件就实践不了 remnote 的方法,我真正担心的是这两种方式都离思源比较远。

    但 DN 中已有很多内容的时候, conor 也会使用 zoom in 来消除其他文本的干扰的对吧?(这里我不咋清楚, 所以打了个问号)

    这个不需要,新的想法永远写在第一行就好了。

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 谢谢,这里确实是我思维惯性弄错了。

    #2762 里那个例子是为了说明而特意构造的,实际使用的时候,关联型双链一般是存在于一大段文字中,就算在纯粹的大纲型双链笔记中,这样的节点一般也不会再有子节点了。所以 logseq 虽然在功能上会让它展示下级,但实际使用中因为用户一般不会在这里再写一个子节点,所以大多数时候是没什么影响的。

    而在想靠双链来达到传递效果的场合里,有时候还是想在锚文本旁边写一点说明文字,比如 - [[闪电网络]] 文章4(需要重读),如果这里也采用「本节点里是否只有一个锚文本」的原则,这种用法就没了。如果有这样的使用习惯,roam research 的判断原则就不太好,就算没有这样的使用习惯,基于上一段的考虑,logseq 的展示方式就算对关联性双链节点有影响,这种影响应该也很小。

    1 回复
  • 其他回帖
  • fangly 1

    大佬您在 Issue #2762 · siyuan-note/siyuan 中对于传递型双链和关联型双链的一些描述好像有点不太准确。您觉得两者的区别在于有无上级节点,但我觉得两者本质区别在于该节点除了双链锚文本之外有没有其他非双链的内容,如果是单独的双链锚文本即 - [[bar]],就是传递型双链,如果有其他内容比如 - 3-[[bar]] 就是关联型双链,因为事实上,我觉得传递型双链完全也可以有上级结点,比如我的 daily note 里有一个顶级节点是学习,然后下面是关于学习的内容,我在这个顶级节点之下再进行内容传递,关联型双链完全也可以没有上级结点,如同我前面发的方法 1 一样。

    我在 roam research 中看了一下,比如有一个页面是这样的:

    image.png

    这个[[Roam meetup]]上面也没有上级节点,查看它的反链,可以看到也是折叠了,没有展现子列表:

    image.png

    而像这个,有上级节点:

    image.png

    它的反链中还是展现了子列表:

    image.png

    所以,roam research 的具体实现中与您在 Issue #2762 · siyuan-note/siyuan 所描述的原则有矛盾,他们并不是按照有无上级节点的原则展现双链的

    所以,事实上,对于关联型双链,思源之前的(1.3.4 之前)的展现内容和 roam research 的展现内容是一样的,只需要把块标从段落块换成列表项就好,不需要展现子级内容

    因此,按照 roam research 进行设计的话,应该是这样:

    • 该节点的内容除了块引用之外还有其他内容的话,不展现子列表,或者在反链面板中默认折叠,也就是说和 1.3.4 之前的版本差不多,只是把块标从段落块换成列表项就好
    • 该节点的内容只有一个块引用,没有其他内容时,展现子列表,也就是按照 1.3.6 的方法

    @88250 D 大,您可以看一下,我觉得按照 roam research 的方案来设计更加科学一点,您现在的设计是按照 logseq 做的,个人认为还是有不少差距的。从我的体验以及我所观察到的 roam research 用户的使用方式来说,在单个笔记库内,关联型双链在数量上远多于传递型双链,因为在正文中会有大量的关联型双链,现在改版之后,对于关联型双链的体验还不如改版前的。

    2 回复
  • 其实简单来说,就是以 daily notes 为核心,做到流畅无压记录,然后靠反链的高度可操作性实现后期整理。

    - [[链滴]]
      - 反馈关于思源笔记的意见可以上链滴社区发帖
      - 链滴社区现在用的还是 Vditor 编辑器
    

    如果在 daily notes 里像上面这样记录,就完全没有必要特地去新建或是打开名叫 链滴 的页面,直接在这里记录就好了,将来打开 链滴 这个页面就可以在反链里看到所有跟它有关的信息,相当于通过双链来传递内容,那些反链其实就等同于 链滴 这个页面的正文。

    虽然我之后的每天都会在 daily notes 里记录一些跟 链滴 相关的内容,但是我根本没有必要去整理 链滴 的反链,我只需要在心里知道「这个东西将来可以方便地整理就行了」。直到将来某一天我需要写一篇介绍 链滴 的文章,我才有必要去整理,这个时候直接把 链滴 这个页面的反链里的所有内容向上拖进正文,然后靠大纲编辑器的编辑能力来组织正文,最后输出就行。

    这个过程没有任何的心智负担,记录的时候只管记录、不需要考虑整理的事,等真正有了应用需求的时候整理起来也很方便。

    另外,roam research 有一个合并页面的功能,能进一步降低心智负担。因为 [[链滴]][[黑客派]] 是同义词,在 daily notes 里思考该用哪个词也会造成心智负担,可是在 roam research 里不需要担心这些,因为 [[链滴]][[黑客派]] 这两个页面将来是可以直接拼接合并的,所以前期只管记录就好了。这样一来,用户在做记录时的心智负担几乎是零。

    还有一些细节没说到,但大致就是这样。

    3 操作
    deerain 在 2021-08-13 01:25:26 更新了该回帖
    deerain 在 2021-08-12 23:31:44 更新了该回帖
    deerain 在 2021-08-12 23:18:16 更新了该回帖
  • 趁吃饭时间, 简单对比了下这两种方式, 因对于 conor 流程有点不熟, 可能是对比的有误, 也有可能是理解有误, 望指正

    rem tag + portal 的组合拳 和 daily note(DN)

    先说说记录内容的方式, rem tag 和 Dailynote 的双链, 无论是用 rem tag 和 DN 的双链, 都是需要通过以下流程来创建的([[打字]] (##打字) -> 打字), 这两个方式在记录东西的时候粗略上是一致的(细想是不一致的), 那么先算这两种记录内容的方式在心智压力水平姑且是差不多的吧, 但出于我刚刚说的理由( [[文字]]这种双链标记式内容有时会淹没于其他大量双联查看式内容会导致之后整理的困难, 而 rem tag 这种方式因为 rn 独特的设计可以把这类需整理的内容汇总到一起, 方便以后的整理), 所以我仍觉得 rem tag 这种方式会比较好

    再说说记录文本的容器. 对比于 daily note 在一个页面上写东西, 使用 portal 的心智压力可能由"打开 portal"和"关闭 portal"这两个操作带来的吧

    1. "打开 portal"
      DN 少内容你不选择 zoom in 的情况, 这时手动打开 portal 的确在心智压力大于 DN

      但 DN 中已有很多内容的时候, conor 也会使用 zoom in 来消除其他文本的干扰的对吧?(这里我不咋清楚, 所以打了个问号), 但若从以下角度来理解 portal: "portal 可以试图看作是已经 zoom in 好的 daily note", 从这方面出发, 此时打开 portal 的操作和需要 zoom in 的 DN 就差不多了

    2. "关闭 portal"
      其实我更倾向于把"关闭 portal"这个操作不当成是心智压力, 因为已经写好了内容, 我已经可以长舒一口气了, 关闭 portal 就顺带是顺手而为

      当然"关闭 portal"这个操作现阶段在 rn 的确有点麻烦, 但好像听说重构后就方便了

    1 回复
  • 查看全部回帖

推荐标签 标签

  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 355 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 476 关注
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    287 引用 • 4484 回帖 • 669 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 49 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    944 引用 • 943 回帖
  • 宕机

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

    13 引用 • 82 回帖 • 52 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 114 关注
  • 安全

    安全永远都不是一个小问题。

    199 引用 • 816 回帖 • 1 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖 • 1 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    83 引用 • 37 回帖 • 1 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 6 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    77 引用 • 430 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    944 引用 • 1459 回帖 • 17 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖 • 4 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖 • 2 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 9 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    568 引用 • 3532 回帖
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 625 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖 • 2 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    88 引用 • 1235 回帖 • 412 关注
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    93 引用 • 113 回帖
  • Telegram

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

    5 引用 • 35 回帖 • 1 关注
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 585 关注
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖