如题
落泪,我写完才知道,但是现在还没找到具体是哪个函数所以暂时没改,俺去找找,谢谢你的建议!
难办诶,我用了一下translator里的Bibtex,那个必须导入保存新条目,没办法做到只解析不导入,解析代码如下:
var translate = new Zotero.Translate.Import();
translate.setString(bibtexContent);
translate.setTranslator("9cb70025-a888-4a29-a210-93ec52da40d4");
let newItems = await translate.translate();
let parsedBibtexItem = newItems[0];
并且自动导入的条目在导入后文库的位置还无法修改了,会报错“Error: Cannot change libraryID after object is already loaded”。
为了兼容群组文库文献的更新,由于自动Import的条目无法在Import前更新 library,因此我暂时删除Bibtex Translator自己建的item、新建一个item来解决问题。为了保证数据的安全性,我还是延续了之前的风格,只删了自动Import的条目,原有的item能不删尽量啥也没删。
代码已更新。
我查了相关dev文档,官方也说setHandler能控制,并且我参考了其他人写的setHandler(使用Zotero翻译器获取作者归属-腾讯云开发者社区-腾讯云 (tencent.com)),但是我实际使用的时候,即使已经直接return 了也不生效,仍然会保存,而且标题也没有被修改。我猜测是BibTex翻译器内已经调用了item.complete(),但是我不清楚怎么关掉它:
我翻阅了现在的大部分的Zotero的Quicker插件,对于translator import的,都是靠item.deleted=true;解决的。包括典型的你的“文献更新(DOI)”。我用eraseTx()的话不会放到回收站里。但是不管哪种方式都无法阻止新建文件诶。我现在随便加入了一个Zotero中文群组准备问一问,如果大佬您有群组也可以拉我一下 :)(感谢)
如果暂时没有更好的解决方案的话,本贴就Archive了?
在出差,回来研究研究
落泪,我写完才知道,但是现在还没找到具体是哪个函数所以暂时没改,俺去找找,谢谢你的建议!
难办诶,我用了一下translator里的Bibtex,那个必须导入保存新条目,没办法做到只解析不导入,解析代码如下:
var translate = new Zotero.Translate.Import();
translate.setString(bibtexContent);
translate.setTranslator("9cb70025-a888-4a29-a210-93ec52da40d4");
let newItems = await translate.translate();
let parsedBibtexItem = newItems[0];
并且自动导入的条目在导入后文库的位置还无法修改了,会报错“Error: Cannot change libraryID after object is already loaded”。
为了兼容群组文库文献的更新,由于自动Import的条目无法在Import前更新 library,因此我暂时删除Bibtex Translator自己建的item、新建一个item来解决问题。为了保证数据的安全性,我还是延续了之前的风格,只删了自动Import的条目,原有的item能不删尽量啥也没删。
代码已更新。
我查了相关dev文档,官方也说setHandler能控制,并且我参考了其他人写的setHandler(使用Zotero翻译器获取作者归属-腾讯云开发者社区-腾讯云 (tencent.com)),但是我实际使用的时候,即使已经直接return 了也不生效,仍然会保存,而且标题也没有被修改。我猜测是BibTex翻译器内已经调用了item.complete(),但是我不清楚怎么关掉它:
我翻阅了现在的大部分的Zotero的Quicker插件,对于translator import的,都是靠item.deleted=true;解决的。包括典型的你的“文献更新(DOI)”。我用eraseTx()的话不会放到回收站里。但是不管哪种方式都无法阻止新建文件诶。
我现在随便加入了一个Zotero中文群组准备问一问,如果大佬您有群组也可以拉我一下 :)(感谢)