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

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

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

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

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

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

  • 思源笔记

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

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

    18706 引用 • 69833 回帖
  • Q&A

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

    6554 引用 • 29426 回帖 • 246 关注

相关帖子

被采纳的回答
  • fangly 1

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

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

    6.gif

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

    7.gif

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

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

欢迎来到这里!

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

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

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

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

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

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

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

    @88250

  • 其他回帖
  • fangly 1

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

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

    6.gif

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

    7.gif

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

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

    1 回复

推荐标签 标签

  • Linux

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

    915 引用 • 931 回帖
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    180 引用 • 400 回帖
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 10 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    116 引用 • 99 回帖 • 269 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖 • 1 关注
  • PHP

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

    164 引用 • 407 回帖 • 527 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 291 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    4 引用 • 55 回帖 • 8 关注
  • 快应用

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

    15 引用 • 127 回帖 • 2 关注
  • TGIF

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

    284 引用 • 4481 回帖 • 654 关注
  • 禅道

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

    5 引用 • 15 回帖 • 222 关注
  • 音乐

    你听到信仰的声音了么?

    59 引用 • 509 回帖
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 2 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    173 引用 • 990 回帖
  • Flutter

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

    39 引用 • 92 回帖 • 8 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    5 引用 • 13 回帖
  • JSON

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

    51 引用 • 190 回帖 • 1 关注
  • 微信

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

    129 引用 • 793 回帖 • 2 关注
  • Unity

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

    25 引用 • 7 回帖 • 246 关注
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 1 关注
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 132 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖 • 1 关注
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    75 引用 • 258 回帖 • 627 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    205 引用 • 357 回帖 • 1 关注
  • Rust

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

    57 引用 • 22 回帖 • 5 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖