特性提议:块引用与所引用的内容块进行交换

本贴最后更新于 945 天前,其中的信息可能已经水流花落

前情提要

双链时代的快速无压记录——从反链面板拖拽到正文是为了编辑手感

Conor 的写作工作流——从反链面板拖拽到正文,会丢掉内容块的上下文信息

在使用双链的流程时一直有个问题,如果直接从反链面板拖动内容块到正文,会丢失这个块记录时上下文所携带的信息。如果是在正文用块引用的方式,则编辑手感会非常的差,而在思源里还会经常触发浮窗。

所以即使是把反链面板中的块挑选出来,块引到正文,我也只是把它们当做参考资料来用,不会去大幅度编辑它。

块引用与所引用的内容块交换则可以解决这个问题。

使用场景

在正文里引用反链面板中的块,右键块引用锚文本弹出选项——“与所引用的内容块交换”,将内容块交换到正文,而 daily notes 里初始块的位置则变成块引用。

这样既保留了记录时的上下文信息,也能获得最佳的编辑手感。

两种实现方式

  1. 在锚文本上右键,弹出菜单选项——交换内容块image.png

交换内容块里提供两个选项,一个是不携带子级,一个是携带子级

比如我块引用的是一个标题块(它是个叶子块),那么替换时就可以选择携带子级,把标题块及其子级内容块全部替换过来

  1. 从反链面板拖到正文

和这个 issue 联动

块移动支持复制为引用或嵌入 · Issue #3294 · siyuan-note/siyuan (github.com),提供一个快捷键拖拽,留在原文的是块引用,拖到正文的是初始内容块

适用范围

所有块引用所能存在的位置,也就是文档块除外。

一些交换场景上的讨论

  • 当块引用叶子块时,可以直接交换。

    • 块引用标题块时,存在两种使用场景,一种是为了交换标题块,一种是为了交换标题及下方所属内容,所以需要提供“携带子级交换”的功能。
    • 块引用列表块中的段落块时,也得能携带子级交换,这是为了不清楚存在“一炮三响”的用户,让他们也能正常使用携带交换(如果这个实现起来比较难,可以不用考虑)。
  • 当块引用容器块(文档块除外)时,可以直接交换。

    • 在块引用列表块和列表项块都可以这么判断,在使用交换功能的前提下,默认用户块引搜索里选中这俩时,就是要把它们交换到正文。
  • 当块引用文档块时,不存在交换的使用场景。

    • 在思源里,文档块中不会有文档块,所以即使能做到交换,也没有这个使用场景。
    • 文档块的命名不能存在块引用,所以交换后,块引用会消失,而文档块到正文中只能变成正文里的标题块。

块引用交换位置后,需要默认为静态锚文本

在这种用法下,初始内容块会一直更新,所以块引用交换后,需要默认静态锚文本,这样初始内容块更新时也能保留旧版本。在初始内容块的反链里看到它的历史版本——以静态锚文本的形式存在。

  • 思源笔记

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

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

    23019 引用 • 92594 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...