Global attributes
对属性的优化建议
In what scenarios do you need this feature?
现在思源中的块属性有三类:内置、数据库、自定义属性。但是到这个阶段我认为思源的属性已经有点复杂且难以管理了,希望借此抛砖引玉(换句话说就是多来些大佬讨论吧,求求了!)
在体验其他笔记软件的过程中,按照它们的使用方式,我个人大致将这些笔记软件的属性分为了全局属性(工作空间属性)和局部属性(数据库属性)。以anytype、tana、未来的logseq db还有obsidian(obsidian暂时只有属性没有数据库)为代表的笔记软件选择了全局属性作为方案,而notion等软件则选择了数据库属性作为方案。这两者在一定程度上可以互补。
全局属性可以做到多个数据库共用一个属性和属性值(tana),甚至更进一步,像anytype一样,每个关系(属性)都是一个数据库,直接在文档里用就好。这个方案的优点非常明显,例如我有一个专用于查询的模板属性,我可以在这个属性中预先填入多个模板以待日后直接使用,当我发现某一个模板有更好的方案时,我只需要修改这个属性值,所有使用该模板属性和属性值的条目都会随之生效,还可以通过属性反向查找出所有使用它的数据库和条目,这些功能通过关联数据库主键的方式很难做到。另外我也建议将自定义属性和标签视为全局属性来处理,自定义属性现在只能依靠社区插件来解决复用的问题,而标签其实也不应该被放弃,因为它能被导出,这一点是目前的多选做不到的。
不过这个方案也有一些缺点,一些不希望看到的零碎属性也会被当作全局属性夹杂在其中,而这恰恰是局部属性的优点,只能在创建它的数据库中维护和使用,互不影响干扰,但在其他方面的灵活性很低。
Describe the optimal solution
不论是思源的内容块还是本体的其他功能,在使用上都非常灵活,就像积木一样可以自己搭建起适合自己的流程和内容。数据库也可以稍微灵活些
考虑到数据库已经推出一段时间了,且全局属性实际上和自定义属性的存在有些冲突。
我想到的解决办法是
- 将自定义属性视为全局属性的一份子,并且可以带有属性类型。
- 在属性的弹出面板中添加全局属性开关和在DOM中显示的开关。只有开启在DOM中显示的开关才能在DOM中显示,这也解决了DOM结构里中文属性名的问题。
今天的输出就写到这里吧,晚上继续,人已经写晕了,D大先别关issue!
Describe the candidate solution
No response
Other information
No response
Source: siyuan-note/siyuan