一个关于反链的脑洞

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

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

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

我认为内容块是笔记的最小的原子,而所有页面,普通编辑页面(后文用正文代替)、全局搜索(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),会自动变成折迭并且光标跳到段首(捂脸)

  • 思源笔记

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

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

    18117 引用 • 66811 回帖 • 1 关注

相关帖子

欢迎来到这里!

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

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

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

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

  • 其他回帖
  • OutOfMemory777
    作者

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

  • Dunker

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

推荐标签 标签

  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 635 关注
  • DNSPod

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

    6 引用 • 26 回帖 • 519 关注
  • 创造

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

    171 引用 • 988 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 689 关注
  • Android

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

    331 引用 • 315 回帖 • 84 关注
  • Java

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

    3165 引用 • 8206 回帖
  • BookxNote

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

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

    1 引用
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 247 回帖 • 212 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 591 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 224 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 609 关注
  • IPFS

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

    20 引用 • 245 回帖 • 232 关注
  • Solidity

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

    3 引用 • 18 回帖 • 346 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    180 引用 • 446 回帖 • 2 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 690 关注
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖 • 6 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    16 引用 • 68 回帖
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    163 引用 • 1446 回帖
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 545 关注
  • 以太坊

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

    34 引用 • 367 回帖 • 4 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    51 引用 • 37 回帖
  • WebComponents

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

    1 引用 • 25 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖
  • 倾城之链
    23 引用 • 66 回帖 • 95 关注
  • Rust

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

    57 引用 • 22 回帖 • 1 关注
  • Git

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

    204 引用 • 357 回帖