面包屑样式改进提议

本贴最后更新于 1179 天前,其中的信息可能已经时移世易

目前面包屑的展示样式存在一些问题,其中一个很明显的问题在 引用块悬浮窗的问题 帖子中有提到。

而且思源的面包屑在不同地方的面包屑显示逻辑也不同,有的地方会换行有的地方不会换行,我认为有必要做一下统一与改进。

思源目前面包屑的设计可以总结为:单节点缩略显示 + 面包屑完全显示 + 有时候换行有时候不换行

和其他软件的面包屑样式进行对比:

roam research 中是:单节点完全显示 + 面包屑完全显示 + 换行

image.png

roam research 这种设计的优势在于可以显示最完整的面包屑上文,缺点在于当面包屑很长时会占据顶端位置,缩减了正文页面大小

logseq 中是:单节点完全显示 + 面包屑中间缩略显示(保留文档名 + 当前聚焦点往上三个层级)+ 换行

image.png

logseq 这种设计的优势就是解决了 roam 面包屑的缺点,缺点也就是缺少了 roam 面包屑可以显示完整上文的优势。

如果要 roam research 的设计和 logseq 的设计中选一个的话,我倾向于 logseq 的设计,因为更可控,roam research 有可能导致面包屑爆炸直接占满半个屏幕。

或许还可以结合 roam research 和 logseq 两者的优点:在默认情况下和 logseq 类似,然后用户点击面包屑上面的省略号时,将展示完整的面包屑。这样能糅合两者的优点,同时避免了缺点。

  • 思源笔记

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

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

    26736 引用 • 111380 回帖 • 2 关注
1 操作
fangly 在 2022-05-23 00:25:02 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • yjmsiyuan 1 赞同

    111111(限定数字,多少可选)>222222>333333>444444>555555>

    666666666666666666666(不限定)》7777777777777

    1 回复
  • fangly

    这思路也不错,相当于单节点中间缩略显示(保留文档名 + 保留当前聚焦点往上 3 个层级的单节点 + 其他缩略显示)+ 面包屑完全显示 + 换行

    2 操作
    fangly 在 2022-05-23 12:03:29 更新了该回帖
    fangly 在 2022-05-23 11:37:30 更新了该回帖
  • 感谢反馈,我先改一版你品品,不满意再来 trollface Issue #4982 · siyuan-note/siyuan

    5 回复
  • fangly 1 1 评论

    2.0.12 的逻辑是单节点固定 7 字符长度缩略显示 + 面包屑完全显示 + 换行 + 滚动条,目前感觉挺不错

    目前还有一个问题是,无法判断某个节点是否缩略,我觉得可以在缩略的节点后加一个点来表示缩略

    image.png

    类似于在钉住的标签页上加点:

    image.png

    还有一个问题是,当鼠标浮在面包屑非块标位置时,最好显示该位置对应的全文而不是缩略内容,不然这个悬浮就没有意义了:

    image.png

    1 操作
    fangly 在 2022-05-23 17:03:30 更新了该回帖
    感谢反馈,下个版本继续改进 Issue #4989 · siyuan-note/siyuan
    Vanessa
  • fangly 3 评论

    针对 2.0.13 的面包屑样式的一些建议,主要关于哪些要缩略,哪些不要缩略:

    image.png

    我觉得原先 2.0.12 的面包屑样式的逻辑就挺不错的,感觉比 2.0.13 好,也比我上面这张图上讲的逻辑要好。因为有了滚动条,不用担心 roam research 设计中可能出现的面包屑占了半个屏幕的问题,没必要让面包屑中间的这些节点都缩略到长度为 1,2.0.12 的“除了浮窗面包屑中的文档路径,其他所有节点统一最大长度为 7”这种逻辑我认为是合适的。

    我觉得可以回到类似 2.0.12 的逻辑

    同时,可以提高 面包屑鼠标悬浮文字显示 的速度,现在貌似大概要 1 秒,可以更快一点,一放上去马上显示,因为鼠标放在面包屑的非块标的地方,用户的意图要么是想悬浮文字显示完整内容,要么是想点击聚焦,一放上去马上显示 不会对用户差生干扰

    4 操作
    fangly 在 2022-05-26 01:27:04 更新了该回帖
    fangly 在 2022-05-26 01:25:56 更新了该回帖
    fangly 在 2022-05-26 01:18:27 更新了该回帖
    fangly 在 2022-05-26 01:17:07 更新了该回帖
    这个缩略是逐个计算的,如果高度大于 2 行就缩略。按照你的描述,是否把缩略的 1 个字换成 7 个字即可?
    Vanessa
    @Vanessa 不止是这个,目前面包屑中第一个节点和最后的几个节点在高度大于 2 行缩略时,会缩略到大概 40 个字,这个我觉得没啥必要,在图中我也说明了原因。所有节点在缩略时的策略应当是相同的,没有哪几个节点是有特权的(主要是要设计特权比较麻烦,logseq 和思源在面包屑设计上还是有很多不同的,直接照搬不太行, 2.0.13 这种逻辑没有太大意义)
    fangly
    @fangly 呃,没太明白。
    Vanessa
  • fangly 5 评论

    举个例子,比如下面这张图中,我框起来的这几个也可以改成缩略到 7 个字,现在全部显示意义不大,比如像图中最后两个“00000000000000000000”,我光标就在这个位置,我直接在文档正文中看就好了,面包屑上又把我光标所在的内容全部显示出来了,比较冗余,看面包屑绝大多数情况是为了看上文,当前块没必要在面包屑中完全显示

    image.png

    我大概明白了,就是该 1 个字的还是 1 个字,否则就是 7 个字?
    Vanessa
    @Vanessa 我觉得这里面 1 个字的也应该变成 7 个字,因为有滚动条,没必要缩略到 1 个字。换句话说,我建议是 2.0.12 的缩略逻辑 +2.0.13 的动态计算,超过一行了就开始缩略,从左往右逐个缩到 7 个字
    fangly
    @fangly 12 版本是固定的 7 个字,然后缩略为一个字。现在就是保持现状不变,缩略的时候变为 7 个字? Issue #5019 · siyuan-note/siyuan
    Vanessa
    @Vanessa 感觉有点说不太清楚,2.0.14 出来后再体验看看吧trollface
    fangly
    @fangly 👌
    Vanessa
  • LiulangZ

    辛苦反馈建议!

  • fangly 1 评论

    补充一个点,如果是只有一行横向滚动的话,还需要考虑定位的问题,也就是说面包屑要自动滚动到最右边(也不一定要是最右边,可以再研究一下),保障面包屑中能显示当前光标所在的块

    IDE 的面包屑应该都有类似这种定位逻辑(我用的 vscode 是这样的),或许可以参考一下它们的逻辑

    IDE 居然不会滚。做的时候想了一下,当时没想好,现在也没想好。
    Vanessa
  • fangly 1

    我用的 vscode 里面会滚动的,或许可以参考下:

    temp242.gif

请输入回帖内容 ...

推荐标签 标签

  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 519 关注
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖 • 2 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 642 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    142 引用 • 442 回帖
  • Python

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

    554 引用 • 675 回帖
  • 旅游

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

    101 引用 • 905 回帖
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 148 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 644 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 2 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    378 引用 • 1867 回帖 • 2 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 808 关注
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • CodeMirror
    2 引用 • 17 回帖 • 177 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 367 关注
  • Follow
    4 引用 • 12 回帖 • 10 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    593 引用 • 3533 回帖
  • IPFS

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

    20 引用 • 245 回帖 • 239 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    498 引用 • 934 回帖
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 72 关注
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 266 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    210 引用 • 2040 回帖
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 661 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 742 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖 • 3 关注
  • uTools

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

    7 引用 • 28 回帖 • 1 关注