zotero设置脚本

zotero7 配

必备插件

  1. jasminum 中文插件:中文论文
  2. sci-pdf插件:英文论文
  3. translate for zotero:翻译
  4. ethereal style: easyscholar,文献的影响因子;标注设置,标注颜色;标签设置,标签命名
  5. better notes for zotero:笔记
  6. actions and for zotero:自动标签

全文翻译

  1. 需要插件支持:ethereal style和translate for zotero,可以通过插件市场安装即可
  2. 配置好两个插件后,
  3. shift+p有个全文翻译的选项

ethereal style设置 shift+p

  1. easyscholar 注册登录后,到我的信息,选择开放接口,复制密钥;
  2. zotero编辑-设置-高级-编辑器,接收,搜索框搜索easy,将密钥帖帖即可,文章信息就会有影响因子出现;
  3. 设置标注,就是个性化颜色,颜色的名称和颜色对应,后边就可以通过颜色名称选择对应的颜色;
  4. 以下两步通过代码配置实现,点击编辑设置--actions & tags -- actions添加事件,包括名称,事件添加标签
  5. 标签设置,配置使用actions and tags for zotero,给标注加标签(根据选定的颜色自动加标签),点击编辑设置--actions & tags -- actions添加事件,包括名称,事件添加标签,具体为名称:根据颜色添加标签,事件:新建条目;操作:自定义脚本;数据:
/**
 * 注释:根据注释颜色增加标签
 * @author appwcn windingwind
 * @link https://github.com/windingwind/zotero-actions-tags/discussions/339
 */

// EDTI TAG MAPPING BELOW
const tags = {
	/** "#bddb63": "研究背景",
	"#c3c3e5": "实验材料",
	"#9cc5c9": "实验方法",
	"#fdb813": "创新点",
	"#fecbba": "结论",
	"#de593a": "重点",
	"#eadab0": "原理背景",
	"#ffd400": "背景-他人研究",
	"#87677d": "合成方法",
	"#876456": "表征方法",	*/
	"#ffd400": "摘要",
	"#ff6666": "结论",
	"#5fb236": "过程",
	"#2ea8e5": "单词",
	"#a28ae5": "句子",
	"#e56eee": "其他",

}

if (!item) {
	return;
}

if (!item.isAnnotation() || !item.annotationColor) {
	return;
}

const tag = tags[item.annotationColor];
item.addTag(tag);
return `Tag added: ${tag}`;

该脚本要注意的就是颜色要与自己设置的标签对应,使用就会方便很多。

  1. 配置使用actions and tags for zotero,添加条目自动翻译标题和摘要,添加代码实现,点击编辑设置--actions & tags -- actions添加事件,包括名称,事件添加标签,具体为名称:自动翻译英文题目,事件:新建条目;操作:自定义脚本;数据:
// Translate item title and abstract automatically
// Wait for abstract to be filled before translating abstract
// author windingwind, PhoenixHwang, northword
// link https://github.com/windingwind/zotero-tag/discussions/107
// usage Event=Create Item

const Zotero = require("Zotero");
if (!Zotero.PDFTranslate) {
	return "[Action:Translate Title and Abstract] Translate for Zotero is not installed or disabled.";
}
if (!item) {
	return "[Action:Translate Title and Abstract] Target item is empty";
}

const skipLang = ["", "zh", "zh-CN"];
const lang = item.getField("language");

if (skipLang.includes(lang)) {
	return "[Action:Translate Title and Abstract] Skip due to language"
}

const title = item.getField("title");
const abstract = item.getField("abstractNote");

const titleResult = (await Zotero.PDFTranslate.api.translate(title)).result;
Zotero.PDFTranslate.data.ztoolkit.ExtraField.setExtraField(item, "titleTranslation", titleResult);

let abstractResult = "";
if (abstract) {
    abstractResult = (await Zotero.PDFTranslate.api.translate(abstract)).result;
    Zotero.PDFTranslate.data.ztoolkit.ExtraField.setExtraField(item, "abstractTranslation", abstractResult);
} else {
    const observerID = Zotero.Notifier.registerObserver({
        notify: async (event, type, ids, extraData) => {
            if (event === 'modify' && type === 'item' && ids.includes(item.id)) {
                const newAbstract = item.getField('abstractNote');
                if (newAbstract) {
                    abstractResult = (await Zotero.PDFTranslate.api.translate(newAbstract)).result;
                    Zotero.PDFTranslate.data.ztoolkit.ExtraField.setExtraField(item, "abstractTranslation", abstractResult);
                    Zotero.Notifier.unregisterObserver(observerID);
                }
            }
        }
    }, ['item']);
}

return `[Action:Translate Title and Abstract] successfully translate title ${title} to ${titleResult} and abstract.`;

两个脚本的作用就是,根据设定的动作,自动触发脚本的动作。

posted @ 2025-03-10 20:48  叕叒双又  阅读(537)  评论(0)    收藏  举报