Misuzu2027 / syplugin-dual-doc-list

MIT License
3 stars 0 forks source link

二级文档树:一些希望增加的功能设计 #3

Closed luluciamk closed 1 day ago

luluciamk commented 1 week ago
  1. 文档可以在二级文档树定位吗?现在使用“文档的定位功能”,文档只能在一级文档树定位, 有时候有些文档是通过文本中的块链接反向定位的,在这种反向定位的操作之下,只在一级文档树里面定位,因为一级文档树很长,那么这种反向定位后,文档的“移动”还是非常麻烦,还是只能和之前用文档标题的那三个点操作——二级文档树这时候基本只能起到一个“查看”的作用。
  2. 二级文档书的气泡可以关掉吗?参考链滴这篇帖子文档气泡,这个随着鼠标飞舞的气泡着实有点干扰。
  3. 希望一级文档树可以保持折叠状态,即点击folder时,子page只在二级文档树展开。如果不是这样的话,那么两个文档层级同时展开,界面十分繁杂,而且也不便于二级到一级的拖动。 ps:我目前的使用体验世——如果1、3两点做不到的话,现在的二级文档树多少有点……鸡肋(本来很需要二级文档树的,现在的二级文档树对一级没有太多辅助作用,很多操作,有无二级文档树的体验效果居然差不多……)
luluciamk commented 1 week ago

又又ps,在另一个issue里看到大大说过印象笔记——没错,基本的二级文档树如果能做到印象笔记那种二级文档树设计,这才能达到可用状态,供参考。 很难得才能登上github,所以还要补充一点。 现在使用时,发现要切换展开不同文件夹的文档的话,操作时“双击”鼠标左键,这个操作总感觉有点不顺手。 可能思源本身有限制,不能做到印象笔记那种,单击父级而在二级文档树展开子级 那么可否将这个切换展开,双击鼠标左键的动作,改变成按住某个键(ctrl或者alt之类的)来辅助切换。 这么建议的原因是—— 切换一次,也许只需要点两下鼠标。 如果在某个场景下需要频繁切换,那么这时候鼠标点击的数量就是翻倍增加,操作动作都会变成双倍,加大了操作量(累)

Misuzu2027 commented 1 week ago
  1. 二级文档列表定位可以增加,不过为了防止二级文档列表不存在定位的文档,定位时会把二级文档列表的路径切换到定位文档的所在路径。
  2. 气泡这个主要是为了跟思源默认文档树保持一致,气泡中包含了 标签、别名、时间等可能需要的信息,所以不会默认隐藏,可以通过 CSS 代码片段进行隐藏。
  3. 这里不太明白,目前思源的笔记本默认单击“展开/折叠”;文档需要点击箭头才能"展开/折叠"。我也觉得有时候单击切换笔记本路径的时候,笔记本"展开/折叠"很麻烦,所以增加了“双击展开笔记本”的设置,开启后还是可以通过单击箭头切换笔记本的"展开/折叠"。所以目前操作还是比较明确的:一级文档树的“展开/折叠”点击左侧箭头,切换二级文档列表路径就单击 笔记本/文档名部分。

ps:目前是切换二级文档列表路径是单击 笔记本/文档 的,点两次才切换可能是其他插件导致的。 不方便上 github 可以在 思源爱好者折腾群(1017854502)找我。

第二点 隐藏二级文档列表中文档的引用数量的 css 片段:

div[data-misuzu2027-embed-dualdoclist] .popover__block.counter.b3-tooltips.b3-tooltips__nw{
  display:none;
}

隐藏文档的文档气泡信息 js 片段:

document.addEventListener('mouseover', function (event) {
    if (!event.target.matches('li[data-type="navigation-file"] > span.b3-list-item__text.ariaLabel')) {
        return;
    }
    const messageElement = document.getElementById("tooltip");
    if (messageElement) {
        messageElement.remove();
    }
});
luluciamk commented 1 week ago

感谢回复。 2气泡问题顺利解决。 3关于折叠展开问题,应该是和我另一个插件产生冲突,经提醒也得到解决。😘

1 文档的定位问题,这里详细描述一下,供大大设计时参考。(说得比较啰嗦)

现在的问题是—— 点开某个文本,在文本中用快捷键命令,“定位这个文档在文档树中的位置”,这时候,定位会在一级文档树打开,同时这个文档的所有同级文档也会全部排列出来。

所说的,“文档在二级文档树定位”,即用快捷键操作时,希望定位只出现在“二级文档树”,一级文档树的界面保持尽量折叠状态。(即只展现父级,不要再在一级文档树中展开子级)

另,今天测试时,又发现另一个小问题(之前因为气泡问题都没怎么好好用过二级文档树啊哈哈) 即,在二级文档树中选中某个文档点开,这个文档在二级文档树中的位置没有任何标识色——一般这种被打开的文档,在文档树中应该有“高亮”背景色之类,意即“它是被选中的”,通过这种高亮色和其他文档区分开来,使人可以一目了然看清这个文档现在在文档树中的位置。(补充说明,这里指的,是高亮背景色没有在文档树上停留,所以查看时只能根据标题来对应文档树,不能通过颜色来对应)

我用的是原生midnight主题,特意换了别的主题尝试,发现这应该不是主题问题。

Misuzu2027 commented 1 week ago

二级文档列表的定位不会操作一级文档树。效果如视频所示:

https://github.com/user-attachments/assets/e04b94a5-c469-4305-8141-f0f2d15d8997

二级文档列表点击文档后没有标识算是一个bug,这个版本修复。

luluciamk commented 1 week ago

感谢大大更新,今天使用时又产生一点新的想法。(可能是个比较大的能力挑战-在思源架构内) 即——大大难道没有觉得现在二级文档树的显示逻辑有点奇怪吗? 如图 捕获

1参考印象笔记这种传统笔记树

那么二级文档树中就不该出现“文件夹”(参考黄色标记) 如此就能确保,每在一级树中点开文件夹,其对应的二级就是绝对的单层文档。 单文档具有隐形维度的高等级,即单文档的层级高于文件夹,文档比文件夹要灵活许多,不管是文档的管理,还是笔记的记录,都要更加高效便利。

如果是现在这种【思源的文档和文件夹混合显示】两者界面高度重合,这会导致

1信息上有点混乱重合

现在可以设置“展开子文档”,就能取代这个子级folder。 子级folder这种低价值信息数量多且散落在二级树中,这只增加了二级树的信息混乱, 还拉长了文档树——这种位置实则是寸土寸金啊。

2操作时也经常会造成混乱

综上,我认为印象笔记-joplin-onenote-有道云,这种传统的二级文档树显示逻辑,比较好用。

当然,这种设计可能比较有挑战性。

那么,我的第二个想法是——这个二级文档树可否增加对“折叠文件夹”的标识?

毕竟现在如图所示,二级文档树中的文件夹和文档看起来没什么区别。 我现在是用emoji来区分两者 但我又觉得emoji花里胡哨,实际上不怎么喜欢,于是经常忘记添加,于是导致如果只看一级inbox的折叠态时,在二级文档树里经常无法区分文件夹和文档。 参考蓝色所示,可否增加一点什么标识(文件夹的字体加粗之类的?)

Misuzu2027 commented 1 week ago
  1. 思源没有文件夹类型,只有文档类型,所以照搬印象笔记等有文件夹(笔记本)等软件的逻辑是行不通的。
  2. 标识目前没有好的实现样式想法,因为需要适配不同主题,就劲量跟官方的样式一致。不过用户可以通过自定义CSS来标识。在没使用数据库查询的情况下(有空我向官方提一个issue,提供一个批量查询文档信息的接口,这样数据库查询也可以获取到子文档数量了),每一个文档标题有一个 data-count 属性,用来表示这个文档子文档的数量,可以根据这个属性不等于0来隐藏该文档或给这个文档添加背景色。

下面给一些参考的 CSS ,按需取用:

/* 隐藏二级文档列表含有子文档的文档 */
.misuzu2027__doc-list li[data-type="navigation-file"][data-count]:not([data-count="0"]){
    display:none;
}
/* 隐藏文档树不含子文档的文档 */
.file-tree.sy__file li[data-type="navigation-file"][data-count][data-count="0"]{
    display:none;
}
/* 添加二级文档列表含有子文档的文档背景色 */
.misuzu2027__doc-list li[data-type="navigation-file"][data-count]:not([data-count="0"]){
    background-color: #e0f7fa;
}
luluciamk commented 1 week ago

感谢,大大给的三个css基本可以解决问题。❤

luluciamk commented 1 week ago

大大。更新最新版本0.7后,右键失灵,失去弹窗,无法在二级文档树进行文档操作了。另,二级树增加了搜索框,我认为这个设计very good,赞

Misuzu2027 commented 1 week ago

早上的 0.0.8 修复了这个问题,如果集市没有显示更新,需要重启思源

luluciamk commented 1 week ago

市场里的最新版本是0.0.7,OK,不过现在好像没问题了。

Misuzu2027 commented 6 days ago

跟隔壁插件版本搞混了 😂,0.0.7确实修复了,不过更新插件可能没有重新加载,所以重启思源就好了。

发现整个文档标题添加背景色有点突兀,弄了个只在开头的icon显示背景的css:

/* 含有子文档的 icon 背景 */
.misuzu2027__doc-list li[data-type="navigation-file"][data-count]:not([data-count="0"]) span:first-of-type{
  background-image: linear-gradient(to top, #a8edea 0%, #fed6e3 100%);
}
luluciamk commented 6 days ago

收到,这个更改确实更美观啊。现在二级文档树很好用了🎉🎉🎉。 另,今天做了一个比较全面深度的使用,观察我自己的使用行为,我发现两个小小的问题。

第一个问题——双击展开文档树的功能设计很迷惑

这有可能是我自己操作问题,供大大参考 现在二级文档树插件的功能设置中有一个“双击展开折叠文件夹”,我之前没有发现这个功能,经之前大大提醒,暂且打开测试了下,有点迷惑—— 这个开关好像开不开都没啥区别(即不用打开这个功能选项,目前也能做到在二级文档树里面双击展开折叠😂) 插件市场里还有另一个插件“双击展开文档树”,一度我以为是这个插件控制着两个文档树的展开折叠,于是关掉这另一个插件,再关掉目前二级文档树里这个“双击展开”设置,测试发现二级文档树还是能够双击展开折叠。 所以,就有点迷惑这个开关的设计用途在哪? [它又不能反向控制一级文档树,让一级树的子文件夹展开折叠——这点还是只能“双击展开文档树”这插件能做到】

第二个问题——文档树的位置

目前二级文档树的设计度我个人认为达到80%可用度,但二级文档树的位置我认为未来可否更换一下? 即像onenote那种,二级文档树放置到右侧区域。 这个似乎又是我的龟毛加难度挑战max😂

我操作时发现的问题——

1两个文档树的叠加宽度问题

一级树和二级树贴在一起,两者的宽度比例我设置是1.5(为了能够看全两级树各自的标题) 这种情况下,我发现我经常频繁去人为调整这一整个文档树的宽度(因为经常涉及到一级树的子folder标题也会较长,或者标题较短时为了不占用编辑器文本篇幅)。 重点不是“标题长度”,而是“调整宽度”这个动作很频繁,着实有点打断其他工作流操作(即使用起来时还是有这点不顺手)

两个文档树加在一起,太宽了就占用编辑器的位置,太窄了就看不全标题。

之前看到过一个issue,希望大大将二级文档树,变成与一级文档树的上下层级关系(这种方案我不赞同,因为这是一级和二级的互搏),我想其中原因大概就有这个,至少上下级不必调整宽度(对我而言,就是动不动就要调整宽度,着实烦人-两个文档树的宽度比例,其实挺不好控制)

2二级文档树与其他辅助部件的信息资源争夺问题

我常用的部件是大纲和反链,这两个信息部件,相较于“宽度”,更重要的是“长度”,和文档树放置在一起,只会造成两者的互相干扰。

如图,我想大多数人对大纲的摆放方案,应该就是以下两种。

第一种,大纲放左下方。 2 这种情况情况下,大纲的宽度=一级+二级(两个文档树)的宽度,这里的问题是

参照目前大纲可能带来的问题,即两个文档树放在一起,其他部件基本就不可以轻易分配到左下方。

第二种,大纲放右边(上方下方都可以) 1 这种方案下

我的设想是——

将二级树做成类似knote这种侧边部件(而且大概会会放在右侧边栏的部件区)

❗原因是: 反链/knote/大纲/标签,这些部件按照多数使用者的使用频率,基本可以按需调取,而不用固定展示。 而二级文档树这种部件,则是最适合“固定展示”这种场景(不需要二级文档树的不会开,需要二级文档树的一定长期开) 即对有需要的使用者而言,二级树的使用频率,远远大于其他部件的使用。

📌在这个前提下,将二级文档树放置在右侧。 一,开启其他部件时,二级文档树现在可以和其他部件合用一个区域(直接减少了一栏信息区),可以减少占用文本区面积,

二,关闭其他信息部件时,二级文档树可以独占右边一整侧的长度,这种时候文档树的展示度最高,也避免了我上文所说,需要和一级文档树一起“频繁调整宽度”的问题 [之所以经常频繁调整宽度,是现在的宽度比例,很难同时兼顾两个文档树的信息区,又兼容文本区的展示面积,两个文档树叠在一起,要么过宽要么过窄,两个文档树分开,可以根据对两个文档树的需求调整各自宽度,调整频率会大大降低】

当然,这种方案会降低文档的“拖拽效率”,毕竟拖动路线变长了点,但考虑到其对整体信息区的效率提升,这点牺牲似乎无可厚非。

又又ps:这点是对二级文档树的精益求精,不清楚大大可否做到,so……如果能做到就真是太好啦😎

Misuzu2027 commented 5 days ago

如果有新的建议可以新开 issue 讨论,标题经历突出主题,这样方便根据标题判断 issue 的内容,防止重复 issue 的存在。

luluciamk commented 5 days ago

OK,收到