一个关于反链的脑洞

本贴最后更新于 1336 天前,其中的信息可能已经物是人非

基于思源这类内容块笔记,我在想如果把反链做成一个临时的内容块集合的页面会不会更好一些?一个类似于由多个嵌入块组成的临时文档。

这样从操作方式和显示都可以共用分屏编辑普通文档时的逻辑。包括折迭,展开,直接编辑,拖动内容块,复制引用块等。引用块本身也是支持跳转的,除了目前引用块打开的文档没法以标签页的形式加入标签栏,其他的功能与反链窗口的功能效果非常接近。嵌入块除了编辑时要弹窗有点膈应以外,整体用着还是挺舒服的。拖动操作与当前相比也是在两个窗口间进行拖动。

我认为内容块是笔记的最小的原子,而所有页面,普通编辑页面(后文用正文代替)、全局搜索(ctrl+p)、单页搜索(ctrl+F/ctrl+H 目前应该还没有)、标签、反链、甚至嵌入块、SQL,都是内容块的某种组合。内容块是 data,各种页面是 view. 只是普通的编辑页面对应的是物理磁盘上的数据位置,而其他页面只是一个临时组合。同时一段文本可以是内容块,一篇笔记可以是内容块,一个笔记本也可以是内容块。不同页面只是块与块之间组合的关系不同。统一的显示逻辑和操作逻辑自然能带来不少好处,比如目前全局搜索(ctrl+P)、书签、反链用的是三种表现形式,两种操作逻辑;未来对于反链窗口中的搜索可以复用单页搜索(ctrl+F)的逻辑。

当反链窗口引入了拖拽功能后,它就不再是一个简单的索引跳转的窗口了,那为什么不把原本正文里有的功能一起加上呢。相同的操作与显示,用户应该可以没有负担的接受。全局搜索(ctrl+p)时可以进行编辑而反链不行,逻辑上并不统一。现在点击反链的效果是跳转,而当前嵌入块也刚好有跳转不方便的问题。如果使用上文方案,那么可以尝试统一一个跳转操作,比如改为点击文本前的 icon/空白进行跳转。这样只要熟悉了嵌入块这种基础功能,对于反链这种高级功能编辑起来也不会陌生。

最后是显示问题。从 q 群和论坛中看到的大部分反馈的点都在于显示问题,看起来是吃力不讨好、同时不同人的诉求相互冲突的重灾区。有的人希望段落全显示,有人希望段落缩略显示,有人希望展开子块的子块,有人希望折迭子块的子块,有人希望展开图片,有人不希望。我觉得这些需求并不存在先天的正当性,更多的是从其他软件迁移过来的习惯,和到底是用户去适应软件改变习惯还是开发者去听从用户意见。这种众口难调的需求,恐怕只有开放多种视图选项才能解决。提供额外的视图方式,比如普通视图,简化视图(类似当前反链窗口一样不显示颜色、字体格式等),缩略视图(超过 n 个字符后用省略号),自定义视图。更方便的全文档展开收起(vs 那种收起/展开全部),在根节点多次按下 ctrl + ↓ 可以把内部折迭的部分依次展开。这些视图和操作更加适合全局搜索、反链这种突显重点统览全局的时候,这些功能同样应该可以对正文起效,比如分屏的时候就很有用。

嵌入块相关

  • 希望给复制为嵌入块加上快捷键
  • 希望能给嵌入块也加上反链,只需要支持 select * from blocks where id='' 这个语法的就可以了,其他 sql 可以不用支持。现在同是索引单个内容块时,引用块支持反链,而嵌入块不支持。可能是因为我个人比较在意笔记的一致性和格式显示,我比较喜欢用嵌入块。

论坛 bug:论坛输入折迭(die 纸的 die),会自动变成折迭并且光标跳到段首(捂脸)

  • 思源笔记

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

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

    26042 引用 • 108098 回帖 • 1 关注

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • Clouder via Linux

    目前的块引用只能显示纯文本,嵌入块编辑依赖浮窗,反链只能显示纯文本、无法编辑,都有待优化。

    可以读一读双向链接时代的快速无压记录,在 DailyNote 中记录内容,通过反链组织为文档。

  • OutOfMemory777
    作者

    DailyNote 的方式是一个现存可行的流程,但是我提的点跟这套方法完全不冲突。我只是觉得嵌入块有更大的潜力,基于此开了一个脑洞吧。也许是一种更方便更统一的可能性。

  • Dunker

    强烈建议给嵌入块也加上反链!

推荐标签 标签

  • Thymeleaf

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

    11 引用 • 19 回帖 • 395 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    29 引用 • 230 回帖 • 123 关注
  • API

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

    79 引用 • 431 回帖
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 5 关注
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 403 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 439 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    188 引用 • 1336 回帖 • 1 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    500 引用 • 1395 回帖 • 243 关注
  • Rust

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

    59 引用 • 22 回帖 • 13 关注
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    437 引用 • 1238 回帖 • 587 关注
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 3 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 648 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    98 引用 • 903 回帖 • 1 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    6 引用 • 143 回帖
  • GitBook

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

    3 引用 • 8 回帖
  • OpenStack

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

    10 引用 • 3 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 10 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 158 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖 • 1 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    24 引用 • 242 回帖
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 192 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 445 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 675 关注
  • 微信

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

    133 引用 • 796 回帖
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    32 引用 • 99 回帖
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    554 引用 • 675 回帖
  • jsoup

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

    6 引用 • 1 回帖 • 490 关注