比 namespace 更好、更简单的面包屑导航功能

目前的 namespace 有些复杂,有些功能实现不了。其实把现有功能稍加改造,很多功能就能实现。

点开下图1的[[第一条]] 这个页面后,在下图2的 Linked Reference 就能看到此页面的面包屑。

再随便点一个,比如 民法典 几个字,就可以 zoom in 民法典,如果 民法典 是一个页面链接,点击页面链接即可进入 [[民法典]] 的页面。

那么,把下图2 Linked Reference 中的面包屑,放进 [[第一条]] 这个页面的 hierachy 里,不就行了?

如果 [[第一条]] 这个页面被很多页面引用了,Logseq 可以认定只有标『tags:: 目录』的页面才是 hierachy 数据的来源。当然,tags:: 目录 是我随便想的,Logseq 可以设置别的属性作为条件。

可以规定 [[第一条]] 这个页面的链接,只在一个 tags:: 目录 页面中出现,如果其它目录页面中又出现了 [[第一条]] ,那这两个 [[第一条]] 就分别指不同的页面。这就达到了 namespace 的初衷。

这样做的好处是:
【1】把某个页面的链接,从一个目录结构中 增入、删除、编辑,非常简单方便。而不用像目前这边很累的给每个页面加前缀,还导致标题很多冗余信息。
【2】这位仁兄的三个要求,在这里都能实现。
【3】感觉开发的技术难度应该不大。用户也能很容易的就使用此功能。

1627781951(1)
上图中,绿色的是文字(标题),鲑红色的是页面链接。

1627782600(1)

补充:如果想要两个不同主题下有相同的页面名称,那就让

仔细看了一下,觉得这个建议很好啊

请大家提提意见。。

有一个小疑问,namespace的初衷是为了建立树状结构吗?

我之前的理解是,namespace的主要用途是防止两个不想关页面同名冲突(不确定理解对不对,如果不对,欢迎指正)。

案例1:
假设你要给看过的剧情很复杂的书建角色卡,来梳理人物关系,如果[[西游记]]里有[[张三]],[[红楼梦]]里也有个[[张三]],这时候为了区分他们,就用namespace来限定[[张三]]的范围,此时,[[西游记/张三]]和[[红楼梦/张三]]就是两个不同的页面。

案例2:
同一个名词,在不同领域的意思可能完全不想关(百度百科里经常一个词可能有很多不同的页面),这时候可能需要用namespace来限定一下他们的范围。

3 个赞

不矛盾的。

在上述方法中,想防止两个不想关页面同名冲突(比如同名的有两个 第一条 ),那就规定在目录页中,一个页面链接只能出现1次,出现多次的话,就视为不同的文档。

比如在 民法典下有个 第一条,那它实际上就是 民法典/第一条。
如果在 刑法 下也有个 第一条,那它实际上就是 刑法/第一条。
看起来一样,实际是有区别的。
这可以避免目前命名空间冗长的标题。
wolai这一点做的比较好。

1 个赞

我觉得这个提议很好!题主要不去github仓提个issue看看

我个人的理解是 namespace 的初衷不是为了建立导航,其实是因为有的 page name 会出现重名和混淆,比如 Haskell 既可以是编程语言也可以是人名,这时候就需要一个全局的标识来命名 page。诚然我们有双链可以找到他,但是写作的时候必须得有个东西来表示,这个没有办法。所以重名的时候用一下就好啦