Zutilo的高级扩展使用 Quick Copy alt1 alt2

前言

概述

Zotero是一款开源的文献管理软件,笔者在使用Endnote遇到了无法处理的bug(使用Seafile云盘同步失败后,参与同步的三台本地计算机和云盘失去了全部的论文item信息,且无法恢复),同时也忍受不了Endnote的卡、慢、蠢后终于第N+1次下定决心彻底抛弃Endnote转投向Zotero。
虽然,Zotero也有很多奇奇怪怪使用起来不够舒服的地方,但至少Zotero还有活力,还有变得更好用的希望,故推荐之。

笔者才疏学浅,对Zotero的研究也不是很深刻,本文主要目的是介绍Zotero的快捷键管理插件Zutilo中的两个选项的作用;对于别的范畴不再介绍,相信聪明的读者一定能找到更好的资源进行了解。

相信有很多朋友在安装好Zotero的快捷键管理插件后会对两个选项“Quick Copy items(alt 1) (alt 2)”感到好奇,因为不管怎么操作这两个选项似乎都没用。本文将会对如何配置这两个选项,如何使用其来使得Zotero更方便而做出介绍。

在笔者从Endnote跳转到Zotero后,一直对Endnote的两个copy复制功能:ctrl+c(复制简单引用)、ctrl+k(格式化复制 format copy)恋恋不忘,而Zotero似乎原生支持的只有格式化复制(format copy)也就是ctrl+shift+c。且,有的时候会有想要直接复制文献DOI的需求,似乎Zotero并不能提供很好的支持。为了解决这两个问题,本文找到了基于zutilo的方法,也就是下面会介绍的内容。

本文目的

  • 介绍Zutilo的选项Quick Copy alt 的使用方法
  • 介绍如何通过Zutilo实现对文献短引用的复制,和对DOI的复制

什么是Quick Copy item

对于 Quick Copy item 的介绍,这里直接节选 官方解释

希望到处论文的完整引用,可以使用Zotero首选项的“导出”部分中指定的“默认输出格式”将所选项目复制到剪贴板;也可以设置Zutilo首选项中的Quick Copy Item来实现。

在默认情况下,除了Quick Copy Item外,还给用户开放了两项;类似的功能,以实现不同需求的文献引用复制:“Quick Copy alt 1”和“alt 2”。此外用户还可以通过更改配置编辑器中的extensions.zutilo.copyItems_alt_total首选项来进行扩展更多的功能。

这些扩展功能没有被配置,用户可以通过Zotero【编辑–>首选项–>高级–>常规–>高级设置–>设置编辑器】来进行配置。**(操作界面非常的不友好,笔者注)**通过配置:Extensions.zutilo.quickcopy_alt1、extensions.zutilo.quickcopy_alt2,即可实现需要的高级功能。

翻译成人话:

Quick Copy Item 只能实现最基本的format copy文献引用的格式化复制,要想实现自定义的复制(比如短引用、DOI)需要用户自行进行配置。Zutilo提供了配置这个的接口。

如何实现功能

笔者是菜鸡,这里直接引用找到的解决方案

实现效果

大概像这样,可以直接粘贴出文献的DOI和短引用
实现效果

DOI的复制

一位名叫Guillawme的网友在G站上发表了他配置Quick Copy Item以实现DOI复制的方法,这是其`原文链接。具体的配置方法可以看原文,也可以看我这里的翻译版。
步骤:

  1. 如果Zotero开着的,先退出。

  2. 复制下面这段代码或者下载本文的附件,复制到 $ZOTERO_DATA_DIR/translators 中。

    {
        "translatorID": "d5bb4cc3-8334-4bbc-a5f0-fe66317c88e8",
        "label": "DOI link quick copy",
        "creator": "Guillaume Gaullier",
        "target": "txt",
        "minVersion": "5.0.82",
        "maxVersion": "",
        "priority": 100,
        "inRepository": false,
        "translatorType": 2,
        "browserSupport": "gcsbv",
        "configOptions": {"getCollections": false},
        "displayOptions": {"exportCharset": "UTF-8", "exportNotes": false, "exportFileData": false, "useJournalAbbreviation": false},
        "lastUpdated": "2020-03-29 14:36:52"
    }
    /*
      MIT License
      Copyright (c) 2020 Guillaume Gaullier
      Permission is hereby granted, free of charge, to any person obtaining a copy
      of this software and associated documentation files (the "Software"), to deal
      in the Software without restriction, including without limitation the rights
      to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      copies of the Software, and to permit persons to whom the Software is
      furnished to do so, subject to the following conditions:
      The above copyright notice and this permission notice shall be included in all
      copies or substantial portions of the Software.
      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
      AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
      OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
      SOFTWARE.
    */
    function doExport() {
        var item;
        while (item = Zotero.nextItem()) {
            if (item.DOI) {
                var doiLink = "https://doi.org/" + item.DOI + "\n";
                Zotero.write(doiLink);
            } else {
                Zotero.write("This item's DOI field is empty, or this item type does not have a DOI field.\n");
            }
        }
    }
    
  3. 启动Zotero

  4. 如果没有安装Zutilo这个插件,那么安装他

  5. 按照下图操作,在高级编辑器的搜索框中键入 extensions.zutilo.quickcopy_alt 并双击修改其值为前面导入的这个配置文件的"translatorID",比如可以输入:export=d5bb4cc3-8334-4bbc-a5f0-fe66317c88e8
    配置流程

  6. 重启Zotero,配置即可生效。这是可以通过Zutilo选项卡中的Quick Copy Item(alt)【快速复制条目到剪切板(alt)】即可实现目标操作。

短引用的复制

所有操作和上面完全一样,只不过使用的脚本不同,笔者直接修改找到的链接为下面这样,照着上文相同的六步操作即可。

{
    "translatorID": "b578986e-4ac5-4735-b938-d8f2f95b850a",
        "label": "MyMarkdownLink",
            "priorlabel": "Scannable Cite",
                "priorcreator": "Scott Campbell, Avram Lyon, Nathan Schneider, Sebastian Karcher, Frank Bennett",

                    "target": "html",
                        "minVersion": "3.0",
                            "maxVersion": "",
                                "priority": 100,
                                    "displayOptions": {
        "exportCharset": "UTF-8"
    },
    "inRepository": true,
        "translatorType": 2,
            "browserSupport": "",
                "lastUpdated": "2020-012-17 09:13:04"
}

// legal types are weird
const LEGAL_TYPES = ["bill", "case", "gazette", "hearing", "patent", "regulation", "statute", "treaty"];
const Mem = function (item) {
    let lst = [];
    const isLegal = LEGAL_TYPES.includes(item.itemType);
    this.set = function (str, punc, slug) { if (!punc) { punc = ""; } if (str) { lst.push((str + punc)); } else if (!isLegal) { lst.push(slug); } };
    this.setlaw = function (str, punc) { if (!punc) { punc = ""; } if (str && isLegal) { lst.push(str + punc); } };
    this.get = function () { return lst.join(" "); };
};

// 笔者 定制版, 不需要复制 Zotero链接,只需要复制(author, year)就行了 
function doExport() {
    let item;
    while (item = Zotero.nextItem()) {
        let mem = new Mem(item);
        let memdate = new Mem(item);
        Zotero.write("(");
        let library_id = item.libraryID ? item.libraryID : 0;
        if (item.creators.length > 0) {
            mem.set(item.creators[0].lastName, ",");
            if (item.creators.length > 2) mem.set("et al.", ",");
            else if (item.creators.length == 2) mem.set("& " + item.creators[1].lastName, ",");
        }
        else {
            mem.set(false, ",", "anon.");
        }
        if (Zotero.getHiddenPref("ODFScan.includeTitle") || item.creators.length === 0) {
            mem.set(item.title, ",", "(no title)");
        }
        mem.setlaw(item.authority, ",");
        mem.setlaw(item.volume);
        mem.setlaw(item.reporter);
        mem.setlaw(item.pages);
        memdate.setlaw(item.court, ",");
        let date = Zotero.Utilities.strToDate(item.date);
        let dateS = (date.year) ? date.year : item.date;
        memdate.set(dateS, "", "no date");
        Zotero.write(mem.get() + " " + memdate.get() + ")");
     }
}

注意,这里需要修改填写的 translatorIDexport=b578986e-4ac5-4735-b938-d8f2f95b850a

上面所用到的这两个js脚本,建议直接点击链接下载(不需要CSDN积分)。
点击下载上述两个js脚本

最后

如果帮到了你,麻烦点个赞呗~

最后,附上几个本人在学习zotero时看过还不错的教程:

我把这些教程所推荐的插件上传到了CSDN,0积分可直接下载:
下载链接
Zotero常用插件列表
有用,就点个赞呗

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值