WingDr / siyuan-plugin-citation

A citation plugin for the SiYuan Note.
MIT License
41 stars 4 forks source link

从 Better-Bibtex 方案切换到 debug-bridge 方案后, 插入引用时总是会新建文档 #88

Closed wangfh5 closed 2 months ago

wangfh5 commented 2 months ago

我最早是使用 debug-bridge 方案的 (使用citekey作为索引), 几个月前总是失败我就切换到了Better-Bibtex方案. Better-Bibtex方案很稳定, 但是没法自动生成zotero条目下的siyuan链接. 最近我发现更新了debug-bridge插件之后, 就又用回debug-bridge方案了, 但是如果使用citekey作为索引, 总是会提示没有安装Better Bibtex, 因此只好使用Itemkey作为索引.

从 Better-Bibtex 方案切换到 debug-bridge+Itemkey 方案后, 插入引用时总是会新建文档, 即使引用的文献已经在Siyuan中有了对应条目 (只不过是之前在 Better-Bibtex 方案下生成的). 这有办法可以兼容吗? 现在我只能一个个转移文档块的引用、移动User Data下面的数据、删除zotero中旧的siyuan反向链接.

WingDr commented 2 months ago

我理解是因为你现在zotero中没有better-bibtex插件生成的citekey,你可以试试重新安装最新版的better-bibtex插件。理论上就算你之前用的是citekey作为索引,改成itemkey之后也会自动在每次引用的时候进行转换的(其实当时提示没有安装better-bibtex就已经不对了)

如果重新安装还是不行的话,那再跟我说,我想想有什么办法能够看到后台的输出然后看看发生了什么

wangfh5 commented 2 months ago

重装了插件还是不行, 还是提示没找到"未检索到citekey字段". 但是使用Itemkey作为索引, 笔记文件标题还是按照模板设置的citekey来生成的, 很奇怪.

WingDr commented 2 months ago

我知道问题在哪,但是我不知道为什么会发生这个问题orz我的建议是先备份你自己的笔记(理论上应该不会覆盖你的笔记,但是保险一点),然后执行一下“刷新所有文献内容”(就在命令面板里)。再看一下文献库里文档的自定义属性,里面的literature-key是否是像这张图里这样,而不是citekey,如果是这样就没问题了

image

可能是你的环境里有我没有预料的情况,但是我想不明白(可能跟思源、zotero和better-bibtex的状态都有关),非常抱歉。当前版本的插件没有开放控制台输出的功能,所以这种debug很难,之后等我有时间了我会和后续的功能一起添加上

wangfh5 commented 2 months ago

我执行"刷新所有文献内容",好像没有任何反应. 所有旧的文献笔记的自定义属性的literature-key依然还是citekey. 新添加的重复文献笔记的自定义属性就是Itemkey了.

wangfh5 commented 2 months ago

实际上在切换Itemkey/Citekey方案的时候, 虽然思源有右上角消息提示"已经将索引切换为Itemkey/Citekey", 但是实际上这个literature-key属性没有任何变化, 是Citekey的不会在切换Itemkey方案之后变为Itemkey, 是Itemkey的也不会在切换Citekey方案之后变为Citekey.

WingDr commented 2 months ago

我执行"刷新所有文献内容",好像没有任何反应. 所有旧的文献笔记的自定义属性的literature-key依然还是citekey. 新添加的重复文献笔记的自定义属性就是Itemkey了.

啊?那我就彻底不知道为啥了。重新启动插件的时候会提示导入多少文献引用,那里的数字是全部文档还是只包括itemkey索引的文档?

实际上在切换Itemkey/Citekey方案的时候, 虽然思源有右上角消息提示"已经将索引切换为Itemkey/Citekey", 但是实际上这个literature-key属性没有任何变化, 是Citekey的不会在切换Itemkey方案之后变为Itemkey, 是Itemkey的也不会在切换Citekey方案之后变为Citekey.

这个切换不会导致刷新,毕竟一旦开始刷新就得过很久,所以做的是隐式切换,就是引用的时候做判断然后切换索引方式

wangfh5 commented 2 months ago

重新启动插件的时候会提示导入多少文献引用,那里的数字是全部文档还是只包括itemkey索引的文档?

提示导入139个文献引用. 这远比Itemkey索引的文档要多. 不过这个数字我一直很迷惑, 因为它大于我文献笔记文件夹里面总的子文档数 (122, 绝大部分是Citekey索引的, 少量是我新建的Itemkey索引).

WingDr commented 2 months ago

提示导入139个文献引用. 这远比Itemkey索引的文档要多. 不过这个数字我一直很迷惑, 因为它大于我文献笔记文件夹里面总的子文档数 (122, 绝大部分是Citekey索引的, 少量是我新建的Itemkey索引).

啊?我超,越来越迷惑了。理论上这个数字应该就是文件夹里所有文件的数量,因为我是直接按照文件夹路径索引的,不应该出现差别才是。

我执行"刷新所有文献内容",好像没有任何反应. 所有旧的文献笔记的自定义属性的literature-key依然还是citekey. 新添加的重复文献笔记的自定义属性就是Itemkey了.

我懂这个是为什么了,我的刷新部分的逻辑写的有点问题,对key的刷新没起效。我争取待会儿发个新版,你看看能不能行,可以先用文档最上面三个点的菜单里面“插件->文献引用:刷新文献内容”来刷新单个文档,没问题就刷新全部文档就行。一般来说只要key对上了那后续的基本就没啥问题了

WingDr commented 2 months ago

ok我知道为什么会新建了,因为搜索面板用key检索的时候并不会区分itemkey和citekey,所以搜索之后找不到就只能新建了,解决方法是先更新key然后再插入应该就没问题了,我马上发个更新

wangfh5 commented 2 months ago

理论上这个数字应该就是文件夹里所有文件的数量,因为我是直接按照文件夹路径索引的,不应该出现差别才是。

不知道, 这个可能是历史遗留问题, 我之前最早用的时候会把插件生成的文献笔记移动到另一个文件夹来分类管理, 后面觉得还是全自动化省事就没有这么干了.

ok我知道为什么会新建了,因为搜索面板用key检索的时候并不会区分itemkey和citekey,所以搜索之后找不到就只能新建了,解决方法是先更新key然后再插入应该就没问题了,我马上发个更新

感谢大佬的辛勤付出!

WingDr commented 2 months ago

不知道, 这个可能是历史遗留问题, 我之前最早用的时候会把插件生成的文献笔记移动到另一个文件夹来分类管理, 后面觉得还是全自动化省事就没有这么干了.

有可能,不过数量多就不用太担心,只要检索到的数量不少就行,反正只是个索引,找到就ok了,多找的也不会对性能产生多大影响

wangfh5 commented 2 months ago

大佬, 我右上角三个点进行文献刷新, 可以把key更新成Itemkey了, 但是命令面板里面"刷新所有文献内容"还是一点反应都没有?

wangfh5 commented 2 months ago

我在设置->模板设置->"刷新所有文献内容文档标题"这里成功全部刷新好了

WingDr commented 2 months ago

okkk,可能还有点问题,我再看看。能解决就好