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

反链面板层级、上下文和移动改进 #2762

Closed
88250 opened this issue Aug 28, 2021 · 15 comments
Closed

反链面板层级、上下文和移动改进 #2762

88250 opened this issue Aug 28, 2021 · 15 comments
Assignees
Milestone

Comments

@88250
Copy link
Member

88250 commented Aug 28, 2021

@deerainw
Copy link

deerainw commented Aug 28, 2021

在其它大纲双链笔记里,反链的层级选择在技术上不是难关,但是具体选择哪几个层级来展示还是很有讲究的,主要有下面这几个现成作业。

首先,按照 conor 工作流,在 daily notes 页面写下:

- [[bar]]
    - sth about bar
        - sub bullet

然后在名叫 foo 的页面里写下这样的内容:

- 1
	- 2
		- 3 - [[bar]]
			- 4
				- 5
					- 6

对于上面的内容,几个做得比较好的大纲双链笔记是这么展示层级的:

roam research

image

葫芦笔记

image

logseq

image

roam edit & remnote

image

层级选择规律

总的来说,反链层级选择这件事情,还是 roam research 和 logseq 做得最好。

在 daily notes 工作流里,[[bar]] 这个链接的用途就是把自己的下级节点传递给 bar 这个页面,姑且叫它传递型双链,daily notes 里的这个链接如果独占了一个节点,那么 roam research 的反链里展示的就是 [[foo]] 这一行和它的第一子级。第一子级下方的内容被折叠起来了,避免过多占用反链的展示空间。

而在 foo 这个页面里,列表一共有六个层级,[[bar]] 这个链接出现在第三层 3 - [[bar]] 里,这个节点里除了 [[bar]] 这个链接还有别的文字,所以这个链接的作用大概率是表现关联性,姑且叫它关联型双链;即便使用者对它的期待是传递、于是在链接旁边加了一点点文字补充说明,这些补充说明也涵盖了一定的信息量。所以对于这一种情形,roam research 的做法是完全不展示 3- [[bar]] 的下级节点、只展示 3- [[bar]] 这一个层级,上级节点用面包屑稍微显示一下。

其它大纲双链笔记的反链层级处理方式要么就是把下级节点一刀切全部展示出来,要么就是把下级节点一刀切全部隐藏,在层级理解上比 roam research 落后很多,非要说这些大纲双链笔记谁的反链层级学得稍微好一点,那就是 logseq 了,不过它在第二种情形上也偷了点懒没做单独处理,这些小细节带来的使用差距是决定性的,大纲型笔记如果处理不好这一点,反链的实用性就会大打折扣,完全不展示下级的话根本不利于对 daily notes 生成的那些主题做后期整理。

所以思源列表块的反链层级在改进的时候,具体怎么选择展示的层级,我觉得直接照抄 roam research 或者直接照抄 logseq 都是很好的,最好是直接照搬 roam research 的规则。但假如思源的列表块实在做不了 roam research 和 logseq 那样的反链层级处理,恐怕还是不要默认展开锚文本列表项的下级比较好,不过展开下级的按钮可以加上。

@88250 88250 added this to the backlog milestone Sep 19, 2021
@88250 88250 changed the title 反链链接层级改进 反链链接层级和移动改进 Sep 19, 2021
@88250 88250 changed the title 反链链接层级和移动改进 反链面板层级和移动改进 Sep 19, 2021
@88250 88250 modified the milestones: backlog, 1.3.6 Sep 24, 2021
@88250 88250 changed the title 反链面板层级和移动改进 反链面板层级、上下文和移动改进 Sep 24, 2021
@fanglypro
Copy link

fanglypro commented Sep 25, 2021

虽然closed了,我还是强烈希望能够按照 https://ld246.com/article/1628672942107 里面的最新讨论,复刻roam research的反链展示逻辑。

我认为比较合理的方式是这样的:

默认展现方式是 roam research 那样,根据节点上下文是否充足来判断是否要展开子列表,如果该结点只有一个双链锚文本没有其他内容了,那就展开子列表,如果该结点除了双链锚文本外还有其他内容,那就折叠子列表

然后,反链面板上有两个按钮,一个是全部展开,点了这个按钮相当于变成 logseq 那种,所有内容都展开子列表。另一个按钮是全部折叠,点了这个按钮相当于变成 remnote、roamedit 这种,所有内容都折叠子列表。

@deerainw
Copy link

同意楼上,一次性改进到位比较好。复刻 roam research 的设计本身就有很强的舆论背书效果,而且它确实更能同时满足大多数人各自不同的使用习惯。之后我出一个教程背背书,各位理解了 conor 流程的朋友再在论坛和用户群之类的地方口头支持支持,这个设计从各个方面来说就站住脚了。直接发布试水的话可能引来比较混乱的讨论。

@88250 88250 reopened this Sep 25, 2021
@88250
Copy link
Member Author

88250 commented Sep 25, 2021

然后,反链面板上有两个按钮,一个是全部展开,点了这个按钮相当于变成 logseq 那种,所有内容都展开子列表。另一个按钮是全部折叠,点了这个按钮相当于变成 remnote、roamedit 这种,所有内容都折叠子列表。

@fanglypro 这里我不大理解为啥需要两个按钮,似乎只是个状态切换吧?

@fanglypro
Copy link

fanglypro commented Sep 25, 2021

然后,反链面板上有两个按钮,一个是全部展开,点了这个按钮相当于变成 logseq 那种,所有内容都展开子列表。另一个按钮是全部折叠,点了这个按钮相当于变成 remnote、roamedit 这种,所有内容都折叠子列表。

@fanglypro 这里我不大理解为啥需要两个按钮,似乎只是个状态切换吧?

因为现在相当于有3种状态,第一种状态即默认状态是roam research的选择性展开子列表的形态,第二种状态是类似logseq的全部展开子列表的形态,第三种状态是类似remnote、roamedit的全部不展开子列表形态。

如果只有一个按钮的话,默认是roam research的形态,点击这个按钮后是变成哪个形态呢?

1个按钮只能在两种状态中切换吧,我觉得要实现3种形态的话只能2个按钮。我的想法是,默认roam research形态,点击全部展开按钮后转换到logseq形态,再次点击全部展开按钮后回到默认的roam research形态。点击全部折叠按钮后转换到remnote、roamedit形态,再次点击全部折叠按钮后回到默认的roam research形态。

这是我的想法,D大可以想其他的实现方案,我觉得总的原则应当是:默认为roam research形态,用户可以通过按钮自由转换到logseq形态或者remnote、roamedit形态,并且可以回到roam research形态。

当然,也可以只选择两个形态,比如roam research形态和logseq形态,这样1个按钮就够了,但我觉得既然能做就做绝了,3种形态都有,让无论是哪种需求的用户都无话可说。

此外,现在面板上的全部展开和全部折叠按钮我觉得没啥意义,是以文档作为基准进行折叠和展开,但思源中万物皆块,文档块在反链中何德何能可以具有如此大的特权,这两个按钮目前我感觉是形同虚设,应该没什么人用,可以改成我上面说的功能,我觉得,反链中的基准应当是每个引用的块,以他们为基准进行折叠和展开。

还有当前默认的没有点击上下文按钮时的反链展示形式:

image

在没有点击上下文按钮时的形态是比较奇怪的,它介于葫芦笔记形态与remnote、roamedit形态之间,有一点“不三不四”了,使用了思源特色的列表块,然而列表块挤在一团,其实等价于只显示第一个列表项,这种形态在其他软件中都是没有的,这就比较尴尬,一方面缺少舆论基础,很难让人直接认可这种形态,另一方面,有了前面说的3种形态后,这个形态有没有都无所谓。当然,也可以把这种形态当成是remnote、roamedit形态,也就是说我们在前面所说的全部折叠的时候不是直接把锚文本所在列表项下的子内容全部折叠,而是显示列表块,这个就看D大你们怎么想了,是稳妥一点完全复刻其他软件的设计形态,还是带有一点思源特色,而这个特色是好是坏我觉得见仁见智了。

@fanglypro
Copy link

fanglypro commented Sep 25, 2021

模拟一个具体例子,因为现在版本的反链中的列表块还不能展开,这里我用标题块进行模拟展示(事实上标题的展示逻辑也应当要和列表一样,D大看看要不要一口气顺带把标题的反链逻辑也改一改,和列表的原则是一样的)

引用《测试》这个文档:

image

在《测试》文档的反链,默认形态即roam research形态,根据上下文是否充足选择折叠或展开,节点中如果不止反链锚文本,说明上下文已经充足了,则折叠,节点中如果只有反链锚文本,说明上下文不足,则展开以补充上下文,应当是下面的样式,第一个引用处折叠,第二个引用处展开:

image

点击全部展开后,要转换为logseq形态,应当是下面的样式:

image

点击全部折叠后,要转换为remnote、roamedit形态,应当是下面的样式:

image

@88250
Copy link
Member Author

88250 commented Sep 26, 2021

@fanglypro 感谢说明,我们再考虑下。

@88250
Copy link
Member Author

88250 commented Sep 26, 2021

image

@fanglypro @deerainw 请帮忙看下这样如何?两种形态的切换暂时不考虑了。

@fanglypro
Copy link

fanglypro commented Sep 26, 2021

image

image

这个1a1的地方,我认为最好还是只显示1比较好。按照roam research和logseq中的设计,是显示锚文本所在列表项的子列表的第一层级的内容,第一层级之下层级的内容被折叠了。您的图片中把子列表的内容直接附在父结点上有点奇怪,大部分情况下这样连起来并不能成为完整的句子,只会造成信息冗余,在实际场景中文本内容比较多,感受就会比较明显,我建议这部分还是修改下。

现在的上下文按钮和全部折叠、全部展开按钮是和1.3.5之前的功能一样吗,也就是上下文按钮的功能是在不自动换行和自动换行之间切换,全部折叠展开是根据文档进行折叠展开吗?在我的体验上,对这几个按钮,我只会在每天第一次打开反链面板的时候点击上下文按钮,因为上下文按钮可以保持状态,之后我就不会动这几个按钮了。当然这样的设计我也能接受,默认是roam research形态+自动换行我觉得已经能满足需求了,这部分就看D大的考虑了。

@88250
Copy link
Member Author

88250 commented Sep 26, 2021

感受就会比较明显,我建议这部分还是修改下

好的。

是和1.3.5之前的功能一样吗

一样。

@fanglypro

@deerainw
Copy link

1632628001(1)

@aptexd
Copy link

aptexd commented Dec 10, 2022

在实现编辑器式反链面板 · Issue #3565 功能后
已经失去了在此 issue 讨论和实现的功能
功能重构失去原本特性这无可厚非
而反链展示又是核心体验之一
因此我提议重开此 issue

@88250
Copy link
Member Author

88250 commented Dec 11, 2022

@aptexd 现在反链的层级规则没有变化,还是按照这个逻辑实现的。

@aptexd
Copy link

aptexd commented Dec 12, 2022

@aptexd 现在反链的层级规则没有变化,还是按照这个逻辑实现的。

终于找到原因了,我想应该就是“共享折叠状态”造成的
我推测应该是在 .sy 文档中 fold 字段影响到了其他窗口正常状态了

@mohuishou
Copy link

+1 遇到了同样的问题

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

No branches or pull requests

6 participants