windingwind / zotero-better-notes

Everything about note management. All in Zotero.
GNU Affero General Public License v3.0
5.44k stars 188 forks source link

[Feature] 模仿obsidian的双链方式实现zoteroNote更细粒度的双链 #958

Closed Geo123abc closed 5 months ago

Geo123abc commented 6 months ago

Is there an existing issue for this?

Environment

Describe the feature request

背景:
  1. Obsidian 是以^gmbxio这样的锚点作为双链的链接
  2. zotero-note的查找功能:在zotero-note中Ctrl+F(或者点击note窗口的放大镜图标),输入字符串,可以直接高亮显示搜索结果,快速定位
问题:

zotero-better-note现有的line参数,在跳转的时候可能容易有问题:

  1. 被链接的子笔记前面又插入内容了,导致链接的内容行号变了
  2. 点击链接跳转的时候,可以打开整个子笔记(note),但是无法直接定位到子笔记的具体内容的地方
  3. 如果我在子笔记中是使用有序列表,内容很长,此时定位难度更大

Describe the solution you'd like

解决方案:

能不能模仿obsidian的方式实现双链:zotero better note 插件可以在现有的"链接参数"(参考)基础上添加一个find字段,为了和zotero的itemkey、annotation key保持形式的一致,可以使用八位大写字母+数字的组合

  1. 复制当前位置A的锚点,两种情况:

    1. 没有选中文字时,在当前位置生成字符串比如,^9BG3M5P3,并获得链接[(Wang et al., 2024)](zotero://note/u/ATMB4LBF/?line=3find=^9BG3M5P3)
    2. 选择位置A的类似^9BG3M5P3字符串,复制位置A的锚点,此时可以直接获得链接[(Wang et al., 2024)](zotero://note/u/ATMB4LBF/?line=3find=^9BG3M5P3)
  2. 在另一个地方B粘贴链接到A的链接[(Wang et al., 2024)](zotero://note/u/ATMB4LBF/?line=3find=^9BG3M5P3)
  3. 点击位置B的连接到A的链接,打开noteA,并在noteA触发查找^9BG3M5P3的操作,这样可以快速定位到具体位置

上述操作只能制作好B→A的跳转链接,并没有A→B的链接,为了完成双链功能,还需要获得B处的链接,然后粘贴到A处

上述方案兼容目前已有的内容,并且是对现有功能的加强。希望考虑一下。 谢谢。

Anything else?

No response

windingwind commented 6 months ago

不推荐使用line链接,建议使用section链接,定位到对应段落。

个人认为,在笔记中插入定位字符对笔记的语义是破坏性的,不是特别好

Geo123abc commented 6 months ago

不推荐使用line链接,建议使用section链接,定位到对应段落。

个人认为,在笔记中插入定位字符对笔记的语义是破坏性的,不是特别好

谢谢,我自己再试一下,我不太确定 section链接 的颗粒度怎么样

github-actions[bot] commented 5 months ago

This issue is stale because it has been open for 30 days with no activity.

github-actions[bot] commented 5 months ago

This issue was closed because it has been inactive for 7 days since being marked as stale.

Geo123abc commented 4 months ago

不推荐使用line链接,建议使用section链接,定位到对应段落。

个人认为,在笔记中插入定位字符对笔记的语义是破坏性的,不是特别好

目前better note有两种双链格式,一种是链接到行,另一种是链接到大纲级别,但是没有到块一级,并且这两种链接在note发生改变的时候很容易失效。

最近想到了一种优雅的方案,但是不知道可行性怎么样:使用html语言包裹一个id,并赋给被引用的段落,使得锚点文本(即id)对用户是不可见的,但是对程序是可调用的,这样就能在不破坏笔记的语义的前提下实现更好的双链。

如果方案可以的话,还可以进一步赋予有id的段落一种颜色或者其它的一个标识,便于用户识别。

windingwind commented 4 months ago

所有的非格式内容(例如,html元素的id)将在保存的时候被清理,因此不具有可行性。

Geo123abc commented 4 months ago

所有的非格式内容(例如,html元素的id)将在保存的时候被清理,因此不具有可行性。

感谢回复