列表块段落块的困惑之二:两种块互相转化的一个细节困惑

本贴最后更新于 1059 天前,其中的信息可能已经事过景迁
  1. 首先,为了使得一段文本在被取消列表后,仍能维系原有引用关系
  2. 我选择引用上述文本所在的段落块
  3. 然后,取消列表,将列表转换到段落
  4. 查询引用关系,很好,还在
  5. 把刚才被转到段落块的文本再转回列表
  6. 查询引用关系,很好,仍然还在
  7. 再列表转成段落块
  8. 好,引用关系没啦。

如果一开始就只是段落块,则无需有 1、2、3、4,直接从第五步开始:对一段(被引用的)纯文本,先转列表,关系还在;再转回段落,关系没了。

如此一来,文档型和大纲型两种使用方式并未完全打通。

若干分钟前发的《困惑一》里的问题,还可以视作操作者对操作对象的选择问题(选段落还是选列表)。但本篇《困惑二》里,操作者始终没有,也没有哪个地方,哪个机会,去更改操作对象,没得选嘛,一开始就选择引用一个段落块了,不存在选择问题。但最后发现,引用关系没了,那可不是操作对象变更了?id 可为佐证。

一段文字,“-+ 空格”,然后“backsspace”,id 就变了,原来的段落块去哪了?这是 bug,还是软件的逻辑细节?

  • 思源笔记

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

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

    26075 引用 • 108242 回帖
  • Q&A

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

    10015 引用 • 45508 回帖 • 71 关注

相关帖子

被采纳的回答
  • fangly 1

    段落块转列表块有两种方式

    第一种方式,也就是帖子中的方式,使用"- + 空格",这种方式会将段落块的 id 转移到列表项块上,所以原先引用段落块变成引用列表项块,因此将列表项改为段落块时,原引用就找不到了:

    6.gif

    第二种方式,使用菜单项中的转换为无序列表,这时原先的段落块还是段落块,不存在帖子中的问题:

    7.gif

    我觉得目前这个设计还挺好,用户可以根据自己的需求在上面两种方式中选择一个,不知道是有意为之还是无意之举。

    关于你的担忧,可以考虑通过“反链转移”功能解决,参考我在这个 issue 中的回帖:link,目前思源还没有这个功能,其他双链软件也还没有,不过有的软件通过“合并文档”功能对文档块间接实现了这个功能,但对于更细粒度的块我目前还没看到有软件实现了的。

欢迎来到这里!

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

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

    段落块转列表块有两种方式

    第一种方式,也就是帖子中的方式,使用"- + 空格",这种方式会将段落块的 id 转移到列表项块上,所以原先引用段落块变成引用列表项块,因此将列表项改为段落块时,原引用就找不到了:

    6.gif

    第二种方式,使用菜单项中的转换为无序列表,这时原先的段落块还是段落块,不存在帖子中的问题:

    7.gif

    我觉得目前这个设计还挺好,用户可以根据自己的需求在上面两种方式中选择一个,不知道是有意为之还是无意之举。

    关于你的担忧,可以考虑通过“反链转移”功能解决,参考我在这个 issue 中的回帖:link,目前思源还没有这个功能,其他双链软件也还没有,不过有的软件通过“合并文档”功能对文档块间接实现了这个功能,但对于更细粒度的块我目前还没看到有软件实现了的。

    1 回复
  • 其他回帖
  • suiji

    实在没想到还有这么一出。

    但我倾向于认为这不合理。你说:“第一种方式……会将段落块的 id 转移到列表项块上”,我测了一下,id 转到的是列表块,不是列表项块。引用块看得不清楚,可以看嵌入块。第一种“-+ 空格”后,接着打回车,创建的新列表项会出现在嵌入块里,而第二种不会。

    也就是说,对一段文字“-+ 空格”后,文字所在段落块 id 发生转变,然后生成新列表项块的 id,而列表项块所在的列表块的 id 则由原文字段落块 id 转移而来。

    我认为这是 bug,因为哪怕是你误说的“列表项块”,它也和列表块一样属于“容器块”,而段落块属于“叶子块”。《用户指南》:“内容块在逻辑上分为叶子块和容器块,叶子块不能包含其他块,容器块可以包含其他块“。“-+ 空格”操作直接把一个 id 由叶子块挪到了容器块上,或者说直接把一个叶子块修改成了容器块,我觉得不合逻辑。

    当然,把这一方面内容定位为特例知识,列为特殊注意事项,自然也不是不行。

    @88250

推荐标签 标签

  • JavaScript

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

    730 引用 • 1282 回帖 • 5 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 675 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 536 关注
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    151 引用 • 257 回帖
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 34 关注
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    167 引用 • 408 回帖 • 489 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    17 引用 • 7 回帖 • 1 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 121 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    115 引用 • 318 回帖
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 506 关注
  • Word
    13 引用 • 41 回帖
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 9 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 664 关注
  • GitLab

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

    46 引用 • 72 回帖
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 7 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3201 引用 • 8216 回帖 • 3 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 121 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 7 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 766 关注
  • TextBundle

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

    1 引用 • 2 回帖 • 87 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    172 引用 • 534 回帖
  • VirtualBox

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

    10 引用 • 2 回帖 • 16 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖
  • Hadoop

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

    93 引用 • 122 回帖 • 619 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    20 引用 • 245 回帖 • 233 关注
  • jsoup

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

    6 引用 • 1 回帖 • 491 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    201 引用 • 120 回帖