面包屑样式改进提议

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

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

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

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

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

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

image.png

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

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

image.png

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

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

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

  • 思源笔记

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

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

    22011 引用 • 87764 回帖 • 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

请输入回帖内容 ...

推荐标签 标签

  • CloudFoundry

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

    5 引用 • 18 回帖 • 164 关注
  • TGIF

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

    287 引用 • 4484 回帖 • 667 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    21 引用 • 140 回帖 • 4 关注
  • JetBrains

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

    18 引用 • 54 回帖 • 2 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 48 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    122 引用 • 73 回帖
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    942 引用 • 1459 回帖 • 31 关注
  • DNSPod

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

    6 引用 • 26 回帖 • 506 关注
  • 导航

    各种网址链接、内容导航。

    39 引用 • 170 回帖 • 5 关注
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    84 引用 • 139 回帖 • 2 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1705 回帖
  • Ant-Design

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

    17 引用 • 23 回帖
  • 程序员

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

    565 引用 • 3532 回帖
  • Log4j

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

    20 引用 • 18 回帖 • 32 关注
  • HBase

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

    17 引用 • 6 回帖 • 70 关注
  • ZooKeeper

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

    59 引用 • 29 回帖 • 3 关注
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    221 引用 • 473 回帖
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 19 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 337 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    124 引用 • 169 回帖
  • 创业

    你比 99% 的人都优秀么?

    84 引用 • 1399 回帖
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖 • 1 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 401 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    28 引用 • 108 回帖
  • Thymeleaf

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

    11 引用 • 19 回帖 • 354 关注
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖