你对画廊视图的开发有哪些建议?

  • 思源笔记

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

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

    26403 引用 • 109800 回帖
2 操作
88250 管理员在 2025-06-06 17:56:01 取消置顶了该帖
JeffreyChen 管理员在 2025-06-04 19:32:27 置顶了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 我先提两个


    视图加载:

    • 编辑条目之后不应该像表格视图那样整体刷新,不然会很卡

    条目展示图片:

    • 显示图片 / 不显示图片
    • 自定义优先级规则(例子):获取题头图 > 获取资源字段 A 中的首个图片 > 获取资源字段 B 中的首个图片 > 不显示图片
      • 文档块:题头图 / 条目资源字段
      • 非文档块:条目资源字段
      • 无绑定块:条目资源字段
  • 画廊视图提供画廊配置按钮:

    1. 选择图片来源
    2. 选择字段 A 显示与否
    3. 选自字段 B 显示与否
    4. 。。。

    在卡片上点击卡片弹出框显示详情(如果点击的不是块链接或者 URL 这种优先级更高的),展示数据库行的详情,支持编辑。

    点击卡片支持直接编辑。

    更多的话就是分组配置,增加分组配置按钮,弹出菜单开启分组配置,选择分组字段即可。横向排列(一行一个分组),纵向排列(一列一个分组,类似看板)

    不同意优先级的观点,实现复杂且使用复杂。用户应明确定义图片来源:

    1. 无图片
    2. 附件字段
    3. 资源 URL 字段
    4. 文档题头图

    性能方面考虑图片懒加载和 infinite-scroll 这种滚动加载的方式可以提高性能。


    题外话:

    1. 希望提供插件接口,插件开发者可以扩展数据库的渲染方法,这样除了表格视图和画廊视图,插件开发者可以开发更多的视图,例如
      1. 统计视图:基于数据库数据统计,生成 dashboard
      2. 折叠视图:表格渲染后,点击一行展开可以直接看对应文档的内容
      3. 瀑布流视图:把数据库里固定列的附件或者图片链接直接做成瀑布流
    2. 性能考验开发者功底,这个不可避免。
    3. 原生 css 素材,让插件开发效果更贴近原生,同时便于主题开发
    4. 接口层面简单说就是增删改查,不够的我觉得可以再加。有的人可能还希望给数据库配置 webhook,这样类似 Notion 一样,hook 数据自动添加之类的,在此不讨论。
  • YRJ0422

    可拖拽排序,图片多了不卡。

  • stevehfut

    希望提供插件接口,插件开发者可以扩展数据库的渲染方法,这样除了表格视图和画廊视图,插件开发者可以开发更多的视图,例如

    统计视图:基于数据库数据统计,生成 dashboard

    折叠视图:表格渲染后,点击一行展开可以直接看对应文档的内容

    瀑布流视图:把数据库里固定列的附件或者图片链接直接做成瀑布流

    超级赞同,希望提供相关接口

  • 可拖拽排序;

    允许根据数据库指定字段排序。

  • chriszhang0815

    希望能够参考 flowus 的画廊视图设置,也就是可以有纵向卡片模式,这样在做影视库的时候才能完美地把竖版电影海报展示出来 😄

  • nightstars 1 评论

    是以什么为单位的,“块”还是“文档”?

    跟表格视图没区别
    JeffreyChen
  • deerain 1 1 赞同

    在没有题头图的时候,根据文档内容做摘要,生成看得清文字的缩略图

  • 基建功能还是要有,比如分组,流畅性希望也一并解决了。视图只是不同的展示方式了,可以多考察一下好的软件。

  • suxiang999 1 1 赞同 1 评论

    可以【快速拖拽】,来调整【顺序】

    为什么觉得需要:

    一般记东西,【第一遍】记的时候,并不是自己想要的【顺序】

    需要后期反复查看,进行调整

    另外,像思源的【表格】功能

    如需改变顺序

    一般是先选中内容,ctrl 加 x 剪切,找到需要放置的位置,粘贴

    希望:

    画廊视图,可通过【按住左键】的形式

    进行快速拖拽,调整顺序

    你的光标代码不是最新版,最新版解决了表格空单元格定位不准问题
    wilsons
  • tiger7651 1

    参考 trilium notes

    另:画廊视图只是提供一个大概预览,没必要随时更新,质量也可按需自定义,有独立的缩略图数据库文件来管理,象图像浏览软件一要,数据库要能自动清理优化等功能,不能越来越大。

    1 回复
    1 操作
    tiger7651 在 2025-06-05 16:59:12 更新了该回帖
  • SyTlr 1

    画廊视图 重点在于 用图像标记数据条目的特征(而不是分类),快速定位要需要的内容

    展示内容

    按优先级来说,图片展示 > 文字内容展示 > 纯属性标签展示

    • 图片类的展示优先级:

      1. 数据条目的附件属性里的图片(附件通常就是已经表明了这个数据的特点)
      2. 关联文档块的题头图(不污染文档内容)
      3. 关联内容块(容器块)里的图片(通常的方案是第一张图片)
    • 文字内容的优先级:

      1. 关联内容块(容器块)的内容(markdown 渲染结果,例如像 FlowUs 的展示方式)

      2. 关联内容块的 markdown 原始内容

        1. 这是 flowus 的 文档 markdown 内容视图
      3. 数据条目里的文本属性

      4. 其他属性(类似金山文档的多为表格)

    操作体验

    • 按属性筛选是最基础的。这一点已经在表格视图做得很好了

    • 属性自定义展示统一放到设置按钮里(表格视图整列操作的逻辑在画廊视图用不了)

      • flowus 的属性显示设置
    • 画廊视图的一些专属设置:例如封面图的选择、大小、是否显示属性名等等

      flowus 的画廊设置

  • 在块、文档没有选定图片的情况下,优先使用块、文档中的首张图片作为画廊卡片的 cover

  • minglingling 1 赞同

    画廊视图作为一种强展示,经常打开不同卡片查看具体内容的视图。希望对打开方式的交互进行优化。

    • 点击卡片可以设置为:默认可以打开该文档居中的悬浮窗,或单独的预览渲染。而不是鼠标悬浮在文档上 2s 打开悬浮窗。
    • 悬浮窗居中预览后,可以点击周围空白处可直接关闭悬浮窗
      • 目前浮窗打开方式只有悬停一种,且打开后得点击右上角关闭,有点繁琐,其实表格视图也有这个问题,看了一眼 ob 新出的 base 也没有对这个进行优化。我感觉数据库就是为了解决信息展示弱的问题,频繁切换文档体验不佳,更直观的预览方式会更好。
  • 看了一下 Trilium 长这样:

    image.png

    1 回复
  • Matttttt

    希望是可以从数据库每个条目正文内容里的图作为封面,而不是一定要单开一列设置图片

  • 尽可能全面地想了一下:

    条目形式:

    卡片,上下两部分:预览区、信息区

    预览区:

    • 状态 1:关闭,条目仅显示信息区
    • 状态 2:展示图片(默认)
      • 图片来源
        • 文档块:题头图 / 条目资源字段 / 文档图标 / 文档内首张图片
        • 非文档块:条目资源字段 / 条目图标
        • 无绑定块:条目资源字段
      • 图片类型
        • 本地资源 / 网络图片
        • 静态 / 动态图片
        • 支持视频?
      • 图片效果
        • 适应卡片宽度
        • 适应卡片高度
        • 拉伸
      • 使用场景示例:电影海报墙
    • 状态 3:展示文本
      • 文本来源
        • 文档块:文档内容(比如前 100 字)/ 条目字段
        • 非文档块:主键字段绑定块内容 / 其他条目字段
        • 无绑定块:条目字段
      • 文本类型
        • 纯文本(条目字段)
        • 富文本(文档或绑定块内容,以及未来可能支持的条目字段富文本
        • HTML(模板字段)
      • 使用场景示例:做“卡片笔记”、文章展板
    • 支持设置预览区高度,单位为 px
    • 支持自定义展示顺序优先级,例如:文档题头图 > 资源字段 A 中的首个图片 > 文本字段 B 中的前 100 字 > 预览区留空
      使用场景示例:
      • 电影海报墙,一半电影有海报,另一半没有。有海报的情况下展示海报,没海报的情况下展示电影简介。
      • 文章展板,一半有题头图,另一半没有。有题头图的情况下展示题头图,没题头图的情况下展示文章的前 100 字。
    • 支持配置鼠标左键点击的效果
      文档块、非文档块、无绑定块三种条目类型分别配置

    信息区:

    • 状态 1:只显示字段值(默认)
      • 常规:一行显示一个字段
      • 紧凑:一行显示多个字段(参考飞书)
      • 鼠标悬浮在字段值上的时候通过 tooltip 显示字段名(参考 Notion)?
    • 状态 2:一个字段中,左侧显示字段名,右侧显示字段值
    • 状态 3:一个字段中,上方显示字段名,下方显示字段值
    • 显示 / 隐藏字段
      • 支持隐藏主键字段(参考 FlowUs)
      • 如果所有字段都隐藏了,则卡片只显示预览区
    • 换行 / 不换行
    • 字段布局:居左、居中、居右
    • 支持配置鼠标左键点击字段的效果
      • 触发编辑(跟目前的表格视图点击单元格的效果一致)
      • 与点击预览区相同
      • 默认与点击预览区相同,但会在卡片右上角添加一个“编辑”按钮,开启之后点击字段可触发编辑(参考 Notion、FlowUs)
    • 鼠标右键点击卡片,弹出条目菜单(与表格视图一致的菜单)

    视图功能:

    • 基础功能:筛选、排序、搜索、条目数、显示数据库标题
    • 菜单按钮:卡片右上角添加一个 按钮(没有块标),点击打开条目菜单
    • 拖拽排序:用鼠标左键拖拽卡片,插入到其他卡片的前方或后方
    • 多选卡片:支持按住 Ctrl 点击选中数据库条目支持划动鼠标多选数据库条目;多选卡片后支持批量拖拽排序
    • 批量编辑:数据库多选编辑工具栏支持批量编辑字段值
    • 卡片宽度:默认提供大、中、小三个选项,还支持自定义(考虑到卡片宽度根据数据库块的宽度动态变化,所以需要分别配置 min-width 和 max-width)
    • 加载方式:滚动加载(类似表格视图,底部有个“加载更多”按钮) / 分页加载(底部显示页码,更适合海报墙这种场景,参考 FlowUs 的做法)
    • 分组:依据某个字段的值分组,布局支持横向排列(一行一个分组)或纵向排列(一列一个分组,类似看板)

    视图性能:

    • 卡片预览区延迟加载
      卡片预览区的长宽相对来说是固定的,展示的内容不会导致预览区的长宽发生变化影响布局,所以可以延迟加载(不需要获取完了再渲染整个视图)
      • 图片懒加载
      • 比如获取文档前 100 字和获取文档内首张图片应该都是比较影响性能的,可以先渲染出卡片再慢慢加载
    • 条目或者字段级别的刷新
      编辑条目之后不应该像表格视图那样整个视图刷新,不然会很卡。在数据变更之后,单独处理受影响的条目和其中的字段,在视图中单独删除或添加卡片、单独更新卡片的字段
    1 回复
    1 操作
    JeffreyChen 在 2025-06-06 01:35:43 更新了该回帖
  • suxiang999 1 赞同 1 评论
    • 拖拽排序:用鼠标左键拖拽卡片,插入到其他卡片的左侧或右侧
    • 多选卡片:按住 Ctrl 用鼠标左键点击卡片

    关于这两点,是否考虑结合下,形成【批量移动】

    比如,先按住 ctrl,点击左键多选,然后【批量移动】

    不光是可移动到左侧右侧,上侧下侧都行

    画廊中的条目只存在左侧右侧(在分组功能实现之前),对应的是表格中的条目的上侧下侧。不过可能会有歧义,我修改描述为前方或后方
    JeffreyChen
  • YusufPeng 1 评论

    支持根据自定属性、属性和文件名进行筛选。

    目前表格视图是支持这个的,所以画廊视图也能支持
    JeffreyChen
  • heeeeeee

    j 佬牛逼,太认真负责,一下子写那么多,就是怕 d 大到时候轻浮的甩一句"一句话,开发者菜"就草草了事

  • tiger7651

    trilium 的画廊视图每页显示 20 个笔记项目,有翻页功能,减少卡顿,不知该软件用的什么机制,缩略图显示很流畅,连 excalidraw 画布缩略图显示也很流畅,感觉是直接用 html 实时渲染,并没有什么缩略图缓存。

  • ZQ11 4 评论

    得看大家用来干嘛

    用的人说下你们用来干嘛再开发吧。

    感觉像是个先有鸡还是先有蛋的问题,没开发出来就不会有用途,所以大概会是边用边开发,按需求增加功能
    JeffreyChen
    先去调研下吧 我其实都搞不清楚有啥用 万一做出来不是想要的效果那就尴尬了
    ZQ11
    我提出一个 看看能不能做出卡片笔记 这是我的想法哈 就是如果是卡片笔记, 那就要求好记录的效果了
    ZQ11
    我想当成【白板】用,所以才提出关于拖拽的问题,如果拖拽方便,未尝不是一种小白板,可能吧。
    suxiang999
  • sabully

    我觉得完全可以参考 flowus 的设计,因为我个人觉得它做得挺好看的

请输入回帖内容 ...
JeffreyChen
思源笔记同步教程:https://ld246.com/article/1692089679062 爱发电:https://afdian.com/a/JeffreyChen

推荐标签 标签

  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 1 关注
  • CloudFoundry

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

    4 引用 • 16 回帖 • 197 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    12 引用 • 5 回帖 • 633 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 661 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖
  • SVN

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

    29 引用 • 98 回帖 • 697 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 2 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 710 关注
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    134 引用 • 1127 回帖 • 109 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 2 关注
  • Java

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

    3202 引用 • 8217 回帖 • 1 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖 • 1 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • 快应用

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

    15 引用 • 127 回帖
  • Redis

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

    284 引用 • 248 回帖
  • gRpc
    11 引用 • 9 回帖 • 103 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    77 引用 • 37 回帖
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 185 关注
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    34 引用 • 37 回帖 • 558 关注
  • 架构

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

    142 引用 • 442 回帖
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1062 引用 • 3455 回帖 • 152 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    730 引用 • 1284 回帖
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    268 引用 • 666 回帖
  • Python

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

    554 引用 • 675 回帖
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    10 引用 • 77 回帖 • 1 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    415 引用 • 3598 回帖 • 1 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    16 引用 • 236 回帖 • 240 关注