Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

编辑器顶部添加数据库属性面板 #11371

Open
Jiangshuon opened this issue May 13, 2024 · 90 comments
Open

编辑器顶部添加数据库属性面板 #11371

Jiangshuon opened this issue May 13, 2024 · 90 comments
Assignees

Comments

@Jiangshuon
Copy link

Jiangshuon commented May 13, 2024

最终方案:

#11371 (comment)


数据库属性面板

In what scenarios do you need this feature?

列很多的情况下,无法一眼看到所有列,需要不断shift+滚轮左滑右滑查看,不方便浏览和编辑

希望增加编辑窗

image

image

Describe the optimal solution

可采用悬浮窗的形式

点击不同的行,编辑窗的内容自动改变

Describe the candidate solution

也就是想把这个页面固定下来,点击不同行时,这个界面也能自动切换,不过这样没有主键引用的行怎么办呢?

image

No response

Other information

No response

@hqweay
Copy link

hqweay commented May 13, 2024

https://dbeaver.com/docs/dbeaver/Data-View-and-Format/#table-vs-record-views

数据有很多列时会很有用……操作和实现可以参考下这个

@5kyfkr
Copy link

5kyfkr commented May 13, 2024

#11113
属性界面分离的我也提了,感觉其实相当于增加一个属性面板,像反链面板一样能固定到侧边栏,那样就最完美了,这样快速查看的需求就能一起解决了

@Jiangshuon
Copy link
Author

Jiangshuon commented May 13, 2024 via email

@5kyfkr
Copy link

5kyfkr commented May 13, 2024

思源中不光是文档,普通的块也可以加到数据库库,不是块也可以… 属性面板怕是只适用于文档 相比notion、wolai,思源情况比较复杂

是的,我觉得可以默认显示文档的属性,然后点击块右上角关联的数据库的时候在显示对应的属性,或者像你这个场景,点击数据库主键显示对应主键的属性

@TCOTC
Copy link
Contributor

TCOTC commented May 13, 2024

感觉跟这个需求有部分交集:快速打开数据库主键绑定文档的属性面板 · Issue #11284 · siyuan-note/siyuan

绑定块的数据库条目显示属性面板,未绑定块的数据库条目就只需要显示数据库属性

@TCOTC
Copy link
Contributor

TCOTC commented May 13, 2024

列很多的情况下,无法一眼看到所有列,需要不断shift+滚轮左滑右滑查看,不方便浏览和编辑

还有列被隐藏的情况下,列是无法编辑的,就需要有个面板来编辑

@5kyfkr
Copy link

5kyfkr commented May 13, 2024

我觉得数据库属性面板还是得单独弄一个出来单独放到侧边栏,现在藏得有点深,想实现修改对应块或文档的数据库属性如下:
1.在数据库中找到相关行或列,修改。
2.点击文档或块的右上角进入数据库属性界面,修改。
3.shift+单击块标进入属性->切换至数据库页面,修改。
后两种方案都不能算方便,第2种主要增加了a.找到右上角块标;b.点击进入属性界面 这两个操作。第三种需要记忆快捷键位置并且还要切换选项卡。
其实属性面板就相当于反链面板的作用了,在后面熟悉了数据库的特性后会越来越常用,这也是notion等设计到文档上方展示的原因,思源因为块也有数据库属性,所以不能直接显示在文档上方,但还是建议能在侧边栏显示,只是多一个展示位置,现有在属性里的数据库展示同时保留,额外在侧栏增加个数据库属性展示区域,这样才能更方便对数据库属性的编辑。

@Achuan-2
Copy link
Member

Achuan-2 commented May 14, 2024

@5kyfkr @88250
数据库条目增加侧边栏查看属性这个建议可以,不过我个人会更倾向于添加一个展开按钮(比如flowus这样)
Clip_2024-05-14_20-29-12

具体设计

  • 已绑定块的条目(不管绑定是文档还是普通段落块),点击展开则向右分屏聚焦到该块,在块内容上方自动展开显示数据库属性(只显示当前数据库属性,不显示其他数据库属性,只在块右上方显示所属数据库),然后显示块内容。如果打开的块内有其他块也绑定了数据库,依然保持现在的设计,不显示数据库属性,只在右上方显示所属数据库。
  • 如果条目未绑定块,依然和已绑定块的交互一致,只是块内容那个区域显示一个按钮,点击则是目前块引新建文档的功能,可以直接新建文档,也可以绑定现有文档

Clip_2024-05-14_20-30-08
ps:这个设计应该可以通过分屏+聚焦来实现,只需要在聚焦的块上方显示数据库属性就行

Clip_2024-05-14_20-38-34

考虑上面的展开数据库属性的方案可能一致性不好,数据库打开的页面才显示数据库属性,正常打开则没有(条目未绑定块不存在这个问题)
另一个补充的特性应该是,显示数据库属性不是非得从数据库展开,只要这个块聚焦,原来右上方的所属数据库就显示一个展开按钮,点击则可以展开数据库属性(文档块就是正常状态就显示数据库属性展开按钮),不必非要在数据库那里才能展开数据库属性。退出聚焦则消失。即面包屑所在位置的块有所属数据库我才可以点击展开,其他位置的块就没有按钮展开。如果这个块属于多个数据库,只能一次展开显示一个数据库(感觉同时展示所有数据库没太必要,而且容易占太多空间)

我觉得这样既能给块加上数据库属性面板(从notion过来的人,应该都挺需要这个功能的,而且列一多,这个功能就很有必要性),也符合现有思源的设计理念。

Clip_2024-05-14_21-03-05

@TCOTC
Copy link
Contributor

TCOTC commented May 14, 2024

能直接展开的话感觉交互更好

更新可以移到右键菜单里

image

@Achuan-2
Copy link
Member

Achuan-2 commented May 14, 2024

能直接展开的话感觉交互更好

更新可以移到右键菜单里

image

确实更新不是频繁的操作,如果误触还难撤回

@88250 88250 changed the title 希望增加数据库表格编辑窗 数据库属性面板 May 14, 2024
@88250
Copy link
Member

88250 commented May 14, 2024

@Achuan-2 目前考虑的设计是:

  • 添加一个新的停靠栏面板 - 数据库属性面板
  • 编辑器中的数据库表格视图行(或者以后其他视图的焦点所处主键)无论是否绑定了块,这个面板就竖向显示这一行的所有字段(某些字段除外,比如行号),和现在的 属性面板 - 数据库 效果类似,支持编辑

@88250 88250 changed the title 数据库属性面板 Add the database attribute dock panel May 14, 2024
@88250 88250 changed the title Add the database attribute dock panel The database attribute dock panel May 14, 2024
@88250 88250 changed the title The database attribute dock panel Add the database attribute dock panel May 14, 2024
@TCOTC
Copy link
Contributor

TCOTC commented May 14, 2024

[需求] 我需要一个快速打开数据库主键绑定文档的属性面板(内置属性、自定义属性、数据库属性)的方式 #11284

@5kyfkr
Copy link

5kyfkr commented May 14, 2024

[需求] 我需要一个快速打开数据库主键绑定文档的属性面板(内置属性、自定义属性、数据库属性)的方式 #11284

内置和自定义属性也要吗,这两个应该不常用吧,数据库属性显示在侧栏的时候选中对应的主键行就能看到数据库属性了

@Achuan-2
Copy link
Member

Achuan-2 commented May 14, 2024

@Achuan-2 目前考虑的设计是:

  • 添加一个新的停靠栏面板 - 数据库属性面板
  • 编辑器中的数据库表格视图行(或者以后其他视图的焦点所处主键)无论是否绑定了块,这个面板就竖向显示这一行的所有字段(某些字段除外,比如行号),和现在的 属性面板 - 数据库 效果类似,支持编辑

停靠栏面板有如下问题

  1. 是否只有点击数据库的某一行才能显示停靠栏,而不支持显示任意块的数据库属性,这样子未必合适,也不符合那些希望直接在文档显示数据库属性列表的需求,到时候依然会有一堆人提需求。
  2. 像反链、大纲都是文档级别的,文档树、标签、书签是全局的汇总,突然添加一个只针对某个块的信息显示停靠栏是否合适,这个停靠栏在大多数情况用不到,需要我找到一个数据库才能用上是否合适?
  3. 停靠栏显示属性内容,需要编辑查看时,可能就需要把停靠栏拉宽,当不用的时候,如果嫌弃占用空间又要拉短,有些麻烦,特别是小屏电脑以及平板使用,使用体验估计不会太好。

@5kyfkr
Copy link

5kyfkr commented May 14, 2024

  1. 是否只有点击数据库的某一行才能显示停靠栏,而不支持显示任意块的数据库属性

光标在普通文档里的任意块里面,或者光标在文档标题,就能对应看到块或文档的数据库属性

  1. 像反链、大纲都是文档级别的,文档树、标签、书签是全局的汇总,突然添加一个只针对某个块的信息显示停靠栏是否合适,这个停靠栏在大多数情况用不到,需要我找到一个数据库才能用上是否合适?

如第一点,可以在任意块看到对应关联属性,不局限于数据库的主键点选

  1. 停靠栏显示属性内容,需要编辑查看时,可能就需要把停靠栏拉宽,当不用的时候,如果嫌弃占用空间又要拉短,有些麻烦,特别是小屏电脑以及平板使用,使用体验估计不会太好。

这个应该没什么好办法了,只能看界面优化的程度了,如果分离弹窗又会显得复杂了,或者能支持你说的那种单独页签展示出来,那应该就能解决

@88250
Copy link
Member

88250 commented May 14, 2024

是否只有点击数据库的某一行才能显示停靠栏,而不支持显示任意块的数据库属性

在块上的时候也可以显示,类似属性面板 - 数据库。

像反链、大纲都是文档级别的,文档树、标签、书签是全局的汇总,突然添加一个只针对某个块的信息显示停靠栏是否合适,这个停靠栏在大多数情况用不到,需要我找到一个数据库才能用上是否合适?

反链也是块级的,在数据库行和块上都应该可以显示。

停靠栏显示属性内容,需要编辑查看时,可能就需要把停靠栏拉宽,当不用的时候,如果嫌弃占用空间又要拉短,有些麻烦,特别是小屏电脑以及平板使用,使用体验估计不会太好。

无论如何显示(浮窗或者现在的任何一个面板)都有这个问题,能拉宽度就可以了。

@88250
Copy link
Member

88250 commented May 14, 2024

[需求] 我需要一个快速打开数据库主键绑定文档的属性面板(内置属性、自定义属性、数据库属性)的方式 #11284

目前浮窗+点击数据库角标已经比较快捷了,这个需求再缓缓吧。

@5kyfkr
Copy link

5kyfkr commented May 14, 2024

停靠栏显示属性内容,需要编辑查看时,可能就需要把停靠栏拉宽,当不用的时候,如果嫌弃占用空间又要拉短,有些麻烦,特别是小屏电脑以及平板使用,使用体验估计不会太好。

无论如何显示(浮窗或者现在的任何一个面板)都有这个问题,能拉宽度就可以了。

有没可能像下图右侧这样再加个分离出来到页签里类似文档显示的功能,那应该就能解决,或者跳转到现在的属性界面,然后让属性界面能浮动,那样应该也行,不过那应该是后续优化的问题了
image

@88250
Copy link
Member

88250 commented May 14, 2024

停靠栏面板短期内不会大改了,也许后面会考虑支持浮动模式和窗口模式。

@TCOTC
Copy link
Contributor

TCOTC commented May 14, 2024

[需求] 我需要一个快速打开数据库主键绑定文档的属性面板(内置属性、自定义属性、数据库属性)的方式 #11284

内置和自定义属性也要吗,这两个应该不常用吧,数据库属性显示在侧栏的时候选中对应的主键行就能看到数据库属性了

我提这个 issue 本来的需求就是编辑自定义属性和内置属性,编辑数据库属性只是附带的

@Achuan-2
Copy link
Member

Achuan-2 commented May 14, 2024

目前其他停靠栏我几乎不会调宽度,数据库属性主要一定是两列结构,一旦列很多,多选列选项多了,用了文本列,宽度估计会有点吃紧。

如果聚焦块支持展开数据库属性面板,即可以在浏览整个数据库时查看各项的所有属性(可以支持分屏自动聚焦展开数据库属性),又可以在浏览文档和块时,聚焦点击展开数据库信息,我觉得这个交互是更好些的。而不需要我找到一个块,点击,然后我还要再多打开一个停靠栏查看,那为什么我不直接用shift+click查看块属性面板呢,从这个角度来说,就算停靠栏支持显示块和文档的数据库属性,意义不是很大,主要意义在于横向显示数据库每行的属性。

我这个方案对查看文档的数据库属性面板体验好,虽然块的数据库属性面板查看不方便,但是本来这个需求就不如文档快捷查看数据库属性,只要数据库分屏查看项目,自动展开就还好,因为大多数人查看段落块的数据库属性估计更多通过数据库来看的,因为这些块主要靠数据库来维护,平常是零散在各处的

此外,多一个停靠栏还有一个问题,我如果喜欢分屏查看数据库的项目,左边页签是整个数据库,右分屏一个文档,如果想看这个文档的数据库属性,我又要打开一个停靠栏,就很奇怪,占用空间。

思源要做方便查看块的数据库属性,还是建议放在块前,和其他软件差别太多一定是会被人诟病的

@88250
Copy link
Member

88250 commented May 14, 2024

我们得考虑普通块的查看(不只是文档块的),所以放在编辑器顶部的方案对于思源来说不通用。

放在侧栏是比较通用的做法,Notion-like 基本都有侧栏打开,这个还是比较符合用户习惯的。

@Achuan-2
Copy link
Member

Achuan-2 commented May 14, 2024

我觉得notion like的侧栏打开逻辑是分屏打开而不是dock栏打开,所以我这个方案才添加了展开按钮,点击自动分屏,右侧打开块和自动展示块数据库属性
我这个方案的思路是聚焦块才支持展开数据库属性,所以对每个块处理是统一的,并没有搞特殊,只不过文档块打开就相当于直接聚焦了,更方便查看而已。普通块的查看虽然聚焦打开不方便,也可以shift+click打开属性面板查看呀,或者直接悬浮所属数据库弄出浮窗查看,大多数人需要数据库属性面板直接显示而不是放在属性面板里,应该主要都是希望文档显示吧。为什么希望文档显示数据库属性呢,因为一些文档的信息放在数据库里了,比如链接、作者、一些总结,我既然在数据库写了,就没那么想还在文档再重复写一遍了。
建议开发者还是斟酌下,不要为了普通块的数据库属性查看让文档的数据库属性查看麻烦,捡了芝麻丢了西瓜。

@Jiangshuon
Copy link
Author

@Achuan-2 感觉没理解到

假设A文档中有数据库块B,B中有行c1,c2,A文档中还有块D,A文档被添加到了数据库E,块D被添加到了数据库F

点击A文档,侧栏显示A的属性(数据库E)

光标选中B中c1行,侧栏显示c1行的属性(数据库B)

光标选中块D,侧栏显示块D的属性(数据库F)

@TCOTC
Copy link
Contributor

TCOTC commented May 15, 2024

自定义属性是可以在多个数据库之间共享的,比较方便

@QMike0
Copy link

QMike0 commented May 15, 2024

自定义属性是可以在多个数据库之间共享的,比较方便

总感觉自定义属性是部分资深用户和插件作者的玩具,更多的是功能性的作用,显示的意义不大hh;内置属性的显示意义也不是很大,毕竟它们需要修改的频率并不高,而且已经可以在文档或内容块右上角全部展示了
而数据库属性需要显示的原因是现在只显示数据库角标,具体有啥条目完全无法直接看到(个人很讨厌现在只能通过弹窗查看的形式😫),而且数据库属性条目进行编辑的需求会高一些

@QMike0
Copy link

QMike0 commented May 15, 2024

目前我写完以上两个方案,感觉方案2会更好一点,文档位置的问题可以通过2.5解决,展开面板单独一个东西独立出来,不记录文档的打开位置,相当于只是个筐,点击展开后对应的显示文档顶端和属性,不改变原来的其他状态,当然编辑还是可以编辑,只是不影响阅读位置。 大家看看有没什么补充建议,我可以完善下。 路过的朋友们给喜欢的方案点赞

还列出了不同情景的交互方式,可以说是相当详细了!我也是更喜欢方案二一些。
个人有个建议是,右侧分屏仅用于2.1-2.5,而对于2.6和2.7,点击内容块的数据库角标不是进入右侧展开页面,而是使当前页面进入该内容块的类似“聚焦状态”,并在该“聚焦状态”下展示属性面板。原因之一是在小屏状态下,分屏形式同样会占用很大体积。
同样地,文档块数据库角标也是用于进入/退出这种“聚焦状态”,表现为展开/折叠属性面板(默认展开)。
这样做,文档块和普通内容块的角标在判断逻辑上可能会统一一些,不是一个要右侧展开、另一个是展开折叠。缺点是查看普通内容块的属性面板所带来的视觉入侵更明显,甚至比现在的弹窗形式更严重

@QMike0
Copy link

QMike0 commented May 15, 2024

另外就是数据库主键的“展开”按钮(若有),完全可以像前面二位说的那样,替代现有的“更新”按钮,后者基本上用不到,放在右键菜单就行

@5kyfkr
Copy link

5kyfkr commented May 15, 2024

还列出了不同情景的交互方式,可以说是相当详细了!我也是更喜欢方案二一些。 个人有个建议是,右侧分屏仅用于2.1-2.5,而对于2.6和2.7,点击内容块的数据库角标不是进入右侧展开页面,而是使当前页面进入该内容块的类似“聚焦状态”,并在该“聚焦状态”下展示属性面板。原因之一是在小屏状态下,分屏形式同样会占用很大体积。 同样地,文档块数据库角标也是用于进入/退出这种“聚焦状态”,表现为展开/折叠属性面板(默认展开)。 这样做,文档块和普通内容块的角标在判断逻辑上可能会统一一些,不是一个要右侧展开、另一个是展开折叠。缺点是查看普通内容块的属性面板所带来的视觉入侵更明显,甚至比现在的弹窗形式更严重

已更新2.6,对于块属性角标确实不展开可能统一点,不过还是待定,假如一个文档里有多个块的属性想查看编辑,类似数据库表格里的场景,就要不断按前进后退退出聚焦,感觉也有点麻烦。

@5kyfkr
Copy link

5kyfkr commented May 15, 2024

另外就是数据库主键的“展开”按钮(若有),完全可以像前面二位说的那样,替代现有的“更新”按钮,后者基本上用不到,放在右键菜单就行

这个属于细节问题,放右键菜单也行,更新这个按钮我在纯文本转文档的时候还是挺好用的

@zxhd863943427
Copy link
Contributor

我觉得顶部打开还是侧边打开都可以,但我希望有一个统一的方案。

database中的主键在未来是有扩展的可能的,目前虽然只有块和文本两种,但已经是多种主键并存的情况了,未来更多的主键类型也不是没有可能,也就是说,未来会有更多的内容可能被允许添加到database里。

反过来说,database中一项的内容如何出现在其他地方?如反链面板、文档正文、书签、标签和搜索面板中。

我觉得这是一个需要慎重考虑的问题,但我的观点是需要一个统一的、database行级的容器去包裹database内的数据,以便允许它能出现在各种地方,而无论是顶部还是侧边栏只是这个容器的位置不同。

@5kyfkr
Copy link

5kyfkr commented May 16, 2024

我觉得顶部打开还是侧边打开都可以,但我希望有一个统一的方案。

统一的方案是指两者优点都吸收进来的新方案嘛,有没有思路能参考下

database中的主键在未来是有扩展的可能的,目前虽然只有块和文本两种,但已经是多种主键并存的情况了,未来更多的主键类型也不是没有可能,也就是说,未来会有更多的内容可能被允许添加到database里。

要添加新主键那是另一个问题了,主键如果是文字字段,那目前思源都已经支持了(块文字字段,文档标题字段,纯文本字段),我是想不出还能怎么扩展了

反过来说,database中一项的内容如何出现在其他地方?如反链面板、文档正文、书签、标签和搜索面板中。

数据库一定程度上就是书签、标签的替代功能,现在这个issue其实就相当于数据库自己的反链面板,反向展示数据库属性和现有的反链面板两者应该是平级的关系。

我觉得这是一个需要慎重考虑的问题,但我的观点是需要一个统一的、database行级的容器去包裹database内的数据,以便允许它能出现在各种地方,而无论是顶部还是侧边栏只是这个容器的位置不同。

同上一点,如果数据库与其他功能是平级而不是包含关系,就无法出现在各种地方,只需要优化好这个展示面板的位置和展示效果就可以了

@zxhd863943427
Copy link
Contributor

有没有思路能参考下

你误解了我的意思了,我说的更接近于实现层面上的事情,也就是我希望database的属性能是一个单独的组件,它在属性面板、顶部、侧边都共用一串代码,甚至插件也能调用。

我是想不出还能怎么扩展了

就思源内部的元素来说,起码还可以考虑闪卡、资源文件(pdf、图片、视频和其他)、pdf注释这几种主键。更广泛来说,还应该允许有插件拓展主键类型,或者把现有的列类型(数字、单选、多选、链接)作为主键。

反向展示数据库属性和现有的反链面板两者应该是平级的关系

我并没有考虑这两者是否应该平级的问题,我只是想问,假如我需要把database中的一行加入书签,或者我希望在反链面板中看到一个主键类型为文本的行,这该如何实现?

如果直接回答“它不应该出现在其他地方”,那未免有点可惜了。

@5kyfkr
Copy link

5kyfkr commented May 16, 2024

你误解了我的意思了,我说的更接近于实现层面上的事情,也就是我希望database的属性能是一个单独的组件,它在属性面板、顶部、侧边都共用一串代码,甚至插件也能调用。

这个可能是底层设计的范畴了,@88250 要D大来看看有没可能实现共用了

就思源内部的元素来说,起码还可以考虑闪卡、资源文件(pdf、图片、视频和其他)、pdf注释这几种主键。更广泛来说,还应该允许有插件拓展主键类型,或者把现有的列类型(数字、单选、多选、链接)作为主键。

这些类型做成主键能方便对这些类型的管理,但是实际上用文字主键然后再对应对资源进行管理,也就是现在的方式感觉也够了,面向对象的数据库有点anytype的味了,就是看底层有没有条件实现了,还是需要D大看看。

我并没有考虑这两者是否应该平级的问题,我只是想问,假如我需要把database中的一行加入书签,或者我希望在反链面板中看到一个主键类型为文本的行,这该如何实现?

databse的其中一行加入书签这个功能估计困难,但是目前可以把主键加入书签,然后通过本issue点开主键的文档或块就能看到对应的属性了。另外纯文本现在也没办法使用双链语法,反链面板里现在肯定看不到,提及面板里能加上看到也不错,也是底层的问题,还是需要D大看看了。

如果直接回答“它不应该出现在其他地方”,那未免有点可惜了。

就如标签和书签井水不犯河水一样,假如标签弄成也能添加到书签里或者合二为一,那就乱了,个人感觉边界需要界定清楚,如果是平等的层级甚至高于其他功能,那就不应该混在一起。

@88250
Copy link
Member

88250 commented May 16, 2024

数据库中的行就两种,绑定块和非绑定块,这个基础不太可能变了,不用考虑其他形式。关于非绑定块如何被引用,这个后面再考虑吧。

@5kyfkr
Copy link

5kyfkr commented May 16, 2024

数据库中的行就两种,绑定块和非绑定块,这个基础不太可能变了,不用考虑其他形式。关于非绑定块如何被引用,这个后面再考虑吧。

D大,方案2估计是大家共识了,看看什么时候排上路线图安排下,感觉优先级也挺高的,毕竟数据库这个展示挺常用的,其他notion-like用户跑过来肯定也希望有这个。另外路线图也挺久没更新了,还有数据库表格分组(看板前置任务)、多窗口工作区等中饼没加进去,都有挺大提升,每个拉出来都能值一个0.1中版本号

@88250
Copy link
Member

88250 commented May 16, 2024

最近两个月主要还是修 bug 和做一些小的改进,这个 issue 等会拉进计划中。

@TCOTC
Copy link
Contributor

TCOTC commented May 16, 2024

争取先搞个稳定版出来,不然 BUG 没完没了了。

新特性或许可以开个分支来开发?

@88250
Copy link
Member

88250 commented May 16, 2024

对了,方案 2 中“侧栏”这个界面元素目前是没有的,这个是否能用目前的编辑器页签?也就是打开文档就在顶部显示数据库属性,其他块聚焦显示?数据库中点击绑定块行打开时沿用现在的打开块跳转逻辑,即单击新开页签、Alt+点击分屏打开?

主要就是考虑不要引入新的界面元素了,否则这个地方对用户来说就比较奇怪,因为它既不是页签也不是停靠栏面板。

@88250
Copy link
Member

88250 commented May 16, 2024

争取先搞个稳定版出来,不然 BUG 没完没了了。

新特性或许可以开个分支来开发?

我们计划最近一段时间以修复 bug 为主,不引入特性,等稳定一段时间后再开始开发特性。是否需要分支主要看是否有特性贡献者。

@5kyfkr
Copy link

5kyfkr commented May 16, 2024

对了,方案 2 中“侧栏”这个界面元素目前是没有的,这个是否能用目前的编辑器页签?也就是打开文档就在顶部显示数据库属性,其他块聚焦显示?

主要问题是,如果沿用页签,能否判断是从展开按钮打开的,并且能自动替换为下一个点了展开的页面。因为如果不判断,就会丢失文档页面浏览位置的记录(展开默认会回到顶部)。自动替换是notion-like的逻辑。

数据库中点击绑定块行打开时沿用现在的打开块跳转逻辑,即单击新开页签、Alt+点击分屏打开?

对的,点击绑定块沿用现有逻辑,新开页签、Alt+点击分屏与展开页面的区别就是前两者会记录页面滚动位置,后者不会

主要就是考虑不要引入新的界面元素了,否则这个地方对用户来说就比较奇怪,因为它既不是页签也不是停靠栏面板。

确实,但是如果不引入就会比较难区分是展示面板还是右分屏文档,展示面板毕竟是会被下一个展开文档替换的

其实展示区就是个大号内容框,也可以说是拆分出来的侧边栏实现方式

@5kyfkr
Copy link

5kyfkr commented May 16, 2024

对了,方案 2 中“侧栏”这个界面元素目前是没有的,这个是否能用目前的编辑器页签?也就是打开文档就在顶部显示数据库属性,其他块聚焦显示?

要不就只能折中,能实现判断是页签打开的不记录浏览位置就够了。自动替换页面就不要了,毕竟思源是有页签的型式,但是每次展开下一个页面就要多点一次关闭,可以新增右击页签提供“关闭右侧标签页”或者“关闭其他标签页”这些浏览器里有的功能,这样浏览完只需要右击点一次把分屏里的页签都关了就行

image

@88250
Copy link
Member

88250 commented May 16, 2024

那就用编辑器页签吧,关于浏览位置这个点是现实考虑。

麻烦再总结一下最后的方案,以供后面实现时参考。

@TCOTC
Copy link
Contributor

TCOTC commented May 16, 2024

可以新增右击页签提供“关闭右侧标签页”或者“关闭其他标签页”这些浏览器里有的功能,这样浏览完只需要右击点一次把分屏里的页签都关了就行

@5kyfkr 这个在思源里已经有了

@5kyfkr
Copy link

5kyfkr commented May 16, 2024

方案2最终总结
新增功能点:

【功能点1】在文档、块聚焦页面顶部展示数据库属性。

【功能点2】文档顶部增加折叠展开按钮(备选方案),或者将折叠展开集成在现有文档顶部数据库标识中(建议的方案),点击文档顶部数据库标识可展开或折叠数据库属性界面,并且提供设置选项,可设置默认展开或者默认折叠(默认折叠后仅在功能点3、功能点4的情况下展开)。

【功能点3】在数据库主键处对文档块、内容块、纯文本(如可行)增加展开按钮,展开后可在右侧分屏显示对应的文档、块聚焦页面顶部。下一次展开不替换原来的页面,而是再打开新标签页。

【功能点4】点击文档内部的块的数据库标识,直接全屏进入块聚焦展开页面,不另外分栏展示,减少界面入侵和右侧分屏标签页数量,与目前进入块聚焦的功能逻辑相同。

【功能点5】识别在【功能点3】的展开页面的情况下,不记录页面浏览位置,即只有在文档树或其他地方打开文档时会保存页面浏览编辑位置。

整体实现效果:

图1.【功能点1】【功能点2】实现效果见下,图片为展开后的情况。可设置默认展开或者默认折叠。

image

图2.【功能点3】实现效果见下:数据库内点击主键上的展开按钮,页面展开到右侧分屏,并默认显示至顶部,并展开数据库属性(如果默认折叠)。

image

图3.【功能点3】继续展开页面,不关闭上次展开页面,打开新展开标签页。

image

图4.【功能点4】实现效果见下:点击块数据库块标识进入块聚焦页面,并折叠或隐藏文档数据库属性。

image

图5.【功能点3】的补充:纯文本主键依照图4的内容块聚焦页面制作展开页面,如果无法实现则无展开按钮

image

方案2优点:

  1. 点击文档即打开,假设侧栏未展开时,不用再多一步展开侧栏,
  2. 与文档内容的关联感和整体性更强,更像文档内容的一部分。
  3. 数据库横向展示空间充足。
  4. 符合现有notion-like的使用习惯,不会造成使用不习惯。

方案2缺点:

  1. 在需要轻度查看属性的时候界面会有较大入侵,无法像侧栏可随时隐藏。
  2. 必须在顶部查看文档数据库属性,侧栏可以不受阅读位置的影响查看。
  3. 需要改动的部分可能较多,要在文档和块聚焦页面顶部增加属性界面,并且引入可动态更新的展开页面。 对开发者来说是缺点,对用户不是
  4. 另外文章阅读位置可能会被打乱(如果能实现【功能点5】则此条缺点不存在)

@TCOTC
Copy link
Contributor

TCOTC commented May 16, 2024

方案 2 感觉很好了,不过我还有一点问题:

首先我认为纯文本主键也需要能够展开显示属性,这一点所有主键都保持一致。

然后就需要讨论主键上的「展开」按钮和现存的「更多/更新」按钮要怎么处理。

我提出一种思路:

  • 纯文本主键:同时显示 [绑定][展开] 两个按钮
  • 绑定块主键:只显示 [展开] 按钮,[更新] 移到条目的右键菜单里

image

@5kyfkr
Copy link

5kyfkr commented May 16, 2024

首先我认为纯文本主键也需要能够展开显示属性,这一点所有主键都保持一致。

这个看D大V姐了,我也觉得最好能实现,更统一点

然后就需要讨论主键上的「展开」按钮和现存的「更多/更新」按钮要怎么处理。

我提出一种思路:

  • 纯文本主键:同时显示 [绑定][展开] 两个按钮
  • 绑定块主键:只显示 [展开] 按钮,[更新] 移到条目的右键菜单里

image

没毛病,如果纯文本也能展开,就按你的图片里的样式优化就行了,更新按钮变成绑定确实更好理解,我其他绑定了块的主键没用过更新键,可以藏到右键

@zxhd863943427
Copy link
Contributor

数据库中的行就两种,绑定块和非绑定块,这个基础不太可能变了,不用考虑其他形式。

从数据储存上看,目前只是使用了一个Block类型进行划分,简单地增加几个类型,前端新增对应的显示方式和打开方式即可,这方面应该不算太难。

@5kyfkr
Copy link

5kyfkr commented May 17, 2024

数据库中的行就两种,绑定块和非绑定块,这个基础不太可能变了,不用考虑其他形式。

从数据储存上看,目前只是使用了一个Block类型进行划分,简单地增加几个类型,前端新增对应的显示方式和打开方式即可,这方面应该不算太难。

就思源内部的元素来说,起码还可以考虑闪卡、资源文件(pdf、图片、视频和其他)、pdf注释这几种主键。更广泛来说,还应该允许有插件拓展主键类型,或者把现有的列类型(数字、单选、多选、链接)作为主键。

思源首先是笔记软件,主要的载体是文本,数据库解决了笔记和块的分类整理,并且能添加对应的资源列,把图片pdf等资源对应放进去,到这基本就已经是市面上所有notion-like实现的功能了。
假设以资源文件作为主键,那其实就是一个文件管理器了,我觉得有点偏离了笔记软件的用法,有点以前印象笔记素材库功能的味了,但其实电脑的资源管理器和各种网盘就应该是个大素材库,专注好笔记内容编辑和管理并且能关联对应素材就足够了,就算强如anytype的对象(相当于数据库的主键),也如下图基本就是文档和块级别的类型(我觉得思源的数据库自由度其实也已经接近anytype了)。
image

再者网页链接、数字也是文本,其实已经可以通过块或纯文本绑定填入到主键,并不一定需要一个链接列,只要是文本类型的,其实都已经可以作为主键。
不过数据库和闪卡管理联动感觉是个好方案,可以官方弄个闪卡库,把所有对应的闪卡推迟、暂停等功能弄个对应的闪卡状态列进行切换管理,这样可能会清晰直观,不用再引入新的界面,并且还可以自己增加其他标签,但是工作量会不会比单独做个管理界面多就需要进一步评估了,因为其实这就是目前正在优化闪卡的部分。至于其余把列单选多选类型作为主键我也想不到应用的场景了。

@88250 88250 changed the title Add the database attribute dock panel 编辑器顶部添加数据库属性面板 May 24, 2024
@TCOTC
Copy link
Contributor

TCOTC commented May 24, 2024

想了想,如果添加按钮的话,位置最好要固定一下

image

@5kyfkr
Copy link

5kyfkr commented May 24, 2024

想了想,如果添加按钮的话,位置最好要固定一下

应该不用多个按钮,建议直接合并到那个数据库标识就行了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants