Code Monkey home page Code Monkey logo

jasminum's Introduction

Using Zotero Plugin Template Latest release Release Date License Downloads latest release

茉莉花(jasminum)For Zotero

一个简单的 Zotero 中文插件,旨在提升 Zotero 中文用户的使用体验。主要功能有:

  1. 中文期刊附件(PDF/CAJ)的元数据抓取,支持添加PDF/CAJ时自动抓取元数据功能
  2. 集成 Zotero 中文社区转换器的下载与更新功能
  3. 为知网学位论文PDF添加章节书签(依赖于PDFtk)
  4. 更新中文文献引用次数,核心期刊信息
  5. 合并/拆分姓,名,识别文献条目语言,下载知网附件,统一日期格式等

1 安装

下载最新的xpi文件(Firefox浏览器用户记住右键另存为),打开 Zotero -> 工具 -> 插件 -> 右上小齿轮图标 -> Install Add-on From File ... -> 选择下载好的xpi文件。

2 使用说明

2.1 知网元数据识别

知网元数据识别功能可从知网下载的PDF知网保存的网页条目抓取完整的元数据。如果识别失败,可以参考下方常见问题

右键 -> 知网助手 -> 抓取知网元数据

2.2 知网学位论文PDF添加书签

从知网上抓取学位论文的章节页码,用第三方软件PDFtk,将书签添加到PDF中。学位论文PDF必须先抓取元数据后,才可添加书签。

右键 -> 知网助手 -> 添加书签

2.3 更新知网引用数

已经抓取到完整元数据的条目,可以用些功能从知网抓取引用数,期刊类型等信息。这些信息会存储在extra其他字段中(自定义字段正在设计中)

2.4 查找知网附件功能

模拟浏览器从知网查询并下载PDF的流程,可以为附件缺失的条目自动下载PDF。不过因各学校网络环境不同,一般在学校内部使用校园网下载成功率较高。在设置页面可以选择下载CAJ或PDF

2.5 拆分姓名与合并姓名

将条目中作者信息按进行拆分与合并,防止在引用时姓与名分开。不过有些CSL文件已经优化了此问题,拆分还是合并已经没有影响

2.6 手动设置语言

先在茉莉花设置 - 小工具,添加需要手动设置的语言信息,默认是zh-CN。右键点击该功能后,可以条目语言栏中用设定值替换。

2.7 自动设置语言

在茉莉花设置 - 小工具,添加自动设置语言列表,使用nlp.js自动识别语言类别,并进行替换。相关设置在 茉莉花设置 - 小工具

2.8 Zotero 中文转换器(翻译器)更新

翻译器是 Zotero translator 的中文翻译。不过后面觉得这个翻译不好,有歧意。经常会有同学会认为和英文文献翻译相关,更有同学和 Zotero-PDF-Translate 插件搞混。现在统一定为转换器,将网页上的信息转换到Zotero条目上。

按需要查找对应网站的转换器,点击 Update 的按钮进行下载。Local 是本地转换器的更新时间,如果未下载会显示**---**。NewUpdate是 Zotero 中文社区中转换器仓库translators_CN的更新时间。如果出现在右侧出现感叹号,则是说明转换器可以更新,如果是绿色对勾,说明是最新的,不必更新。

上面页面下载之后,还需要在浏览器右键 Zotero Connector ,选择Preference 或扩展选项 在 Zotero Connector 设置页面找到 Advanced - Update Translators ,点击该按钮(建议多次点击),手动更新转换器

🎯 使用Mac Safari 浏览器的同学,可以在Safari浏览器空白页面,右键 - Zotero Preference - Advanced - Update Translators。

可以参考视频,或者B站上的其他教程。如果下载后 ,多次点击没有效果,建议试试其他浏览器,或隔几小时后再试试。

3 PDFtk安装

插件是调用 PDFtk server 提供的功能给PDF添加书签。所以使用该功能,需要提前下载安装好 PDFtk server,并在插件中设置好对应的目录,注意此处目录设置是bin目录PDFtk server 下载页面

3.1 Windows

下载页面找到上图的下载链接,下载Windows的安装文件。按默认设置安装后,设置目录为C:\Program Files (x86)\PDFtk Server\bin

3.2 Linux

以经典的 Ubuntu 16.04 为例,安装pdftk

sudo apt install pdftk
which pdftk
# /usr/bin/pdftk

3.3 Mac

感谢下面同学的测试与反馈 @GuokaiLiuissue @tsunho12#135 @simon2413#55

3.3.1 Intel MacOS(>10.15)

由于官方未更新PDFtk server最新版本的链接,通过官网首页下载的PDFtk server (2021.10.26)仍不支持部分较新的mac系统,目前推荐通过:https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-2.02-mac_osx-10.11-setup.pkg 下载。

3.3.2 M 系列芯片

需要先安装 M系列芯片 版本的 homebrew,然后在终端 Terminal 中

brew install pdftk-java
# 如果上面命令安装失败或使用异常,使用下面这条命令安装
HOMEBREW_BOTTLE_DOMAIN= brew install pdftk-java
which pdftk  # 查看pdftk安装路径

如果安装错了 PDFtk,可能会出现下面的错误提示(如M1芯片安装了Intel版本)

pdftk --version 
# zsh: bad CPU type in executable: pdftk

3.3.3 PDFtk 路径设置

Zotero 茉莉花插件配置pdftk路径:/opt/pdflabs/pdftk//usr/local/bin/pdftk (该路径默认对外隐藏无法选取,不同系统路径也会有差异,具体以which pdftk输出的结果为准)。 选择路径的技巧:shift+command+G: 输入:/opt/pdflabs/pdftk/(如此which显示是该目录),选择bin确认

官网:https://www.pdflabs.com/tools/pdftk-server/
After installation, open a Terminal, type pdftk and press Return. Pdftk will respond by displaying brief usage information(注意!安装后请试试这一步,出现使用说明说明安装成功). Access pdftk documenation by running man pdftk.

This installer creates a directory on you Mac: /opt/pdflabs/pdftk/. This will contain a bin directory which holds the pdftk program and a docs directory which holds the complete PDFtk manual.

4 常见问题

  1. CAJ/PDF 文件元数据抓取失败 一般按照默认设置是通过文件名来获取文献的标题与作者,在知网上按照标题与作者信息进行搜索。 默认文件名识别模板{%t}_{%g},识别文章标题_作者命名的文件名,如义务教育阶段体育课程评价的**式现代化建设路径_程文广.pdf {%t},识别文章标题命名文件,如义务教育阶段体育课程评价的**式现代化建设路径.pdf 如果信息抓取失败,可以尝试将文件名的作者信息去掉,同时在设置中将文件名模板修改为{%t},此时程序会将文件名识别为标题,并利用该标题在知网上进行模糊搜索,成功率比较高

  2. 非官方翻译器页面空白 刚点开该窗口时,页面信息为空白,需要手动点击下方的刷新按钮,拉取最新的翻译器信息

  3. Zotero 使用卡顿 如果电脑其他软件运行正常,可能是 Zotero 插件安装过多,可适当禁用一些插件。

  4. 转换器更新之后还是没有效果? 在浏览器中更新转换器,有时候花费很多时间还是没效果。建议换个浏览器,或者手动下载PDF后,拖到 Zotero,右键PDF - 知网助手 - 抓取知网元数据😄

jasminum's People

Contributors

jiaojiaodubai avatar l0o0 avatar northword avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jasminum's Issues

文献引用数格式问题

开发者您好!非常感谢您编写的插件,真的非常有用,给我们提供了很大的帮助。
有个小建议,望基于考虑。
现有的引用数中“其他”选项类似这样:CNKI citations: 16[2021-11-29]
Chinese Core Journals: <北大核心, EI, CSCD>
这使得主窗口可能只能显示“CNKI cita...”,这就导致最关键的引用数字“16”,以及期刊等级“EI”只能逐个点击查看,不太直观。
假如将“其他”选项内容改为:Z16,这使得在主内容窗口可以直观看到目录下所有文献的引用数字和期刊等级,效率极大提高。
微信截图_20211129105022
微信截图_20211129110028
望予以考虑。感谢!

bug report批量导入无法下载pdf

在知网的检索结果页面(图1),如果一次性导入很多个题录,则只能正常导入题录,却不能把pdf都下载下来,
而只有一一点开具体的论文页面(图2),才能自动把pdf下载下来
image
图1
image
图2

书签添加功能

可以描述一下如何在zotero中使用书签添加功能吗?我找了很久好像没有找到使用的入口?

功能期望

知网只能抓取期刊题录,无法抓取电子书籍的题录,希望能支持从其他地方抓取题录信息,比如全国图书馆参考咨询联盟等

功能期望:为添加的中文条目统一“语言”属性

问题描述:
目前从不同来源添加的中文文献语言属性有包括“zh-CN“(理想情况应当是这个),"zh",“中文”,”中文;“,……导致引用格式不统一(例如et al和等)。

期望的功能:
新添加的条目,所有语言属性包含”中文”,“zh”的统一调整为“zh-CN”

能否支持多种文件名格式?

不同网站下载的文献名格式有区别,不能统一设置。
另外利用zotfile重命名完以后,再拖回来都是不支持的,因为格式变了。

v0.1.1 发布失败了

邮件提醒发布了v0.1.1,但是xpi文件和release页面没创建好,这会使用户陷于无尽的更新失败中,估计是action由于本库长期没活动被关了😅

bug report

从浏览器导入文献时,“拉取知网元数据后调用zotfile重命名”功能导致会导致无法抓取知网元数据

开启该功能时,当我在浏览器里点插件时,文件加入文献库,并被zotfile改名,然后触发了茉莉花抓取知网的事件,它发现文件名已经被zotfile更改,不符合从知网下载的默认名称,于是抓取失败
在不开启的情况下,会先出现一个名为"Full Text PDF"的文件,然后一瞬间出现两个PDF,另一个的名字符合知网规范,过一会,会再变成只剩一个,留在条目的附件里,并且留下的这个有目录,名称符合zotfile规范。此时符合使用需求。
导入本地PDF并获得题录的需求和在浏览器中获得新文献及题录的需求冲突。

知网数据拉取有时不成功

涉及到知网数据拉取,还有部分PDF书签添加功能。因为搜索知网过程中,返回空结果,PDF或CAJ文件不能识别,添加书签不成功。

我这里测试的结果是:先是使用正常的网页拉取功能,拉取知网的数据,如果此时因权限问题没有下载到PDF或CAJ(或者下载成功也会导致后面的问题)。后面在Zotero中使用 Jasminum 抓取知网元数据或添加书签时,日志信息中出现下面的结果:

(3)(+0000001): ** Jasminum create http get.
(5)(+0000004): CookieSandbox: Being paranoid about channel for kns.cnki.net
(5)(+0000001): CookieSandbox: Cleared cookies to be sent to kns.cnki.net
(5)(+0000129): CookieSandbox: Being paranoid about channel for kns.cnki.net
(5)(+0000001): CookieSandbox: Not tracking received cookies for kns.cnki.net
(3)(+0000002): **Jasminum get item from search

一般搜索结果是空的。重启Zotero后,可能又可以正常拉取数据

抓取知网数据无效

今天上午突然无法抓取知网数据,已更换WiFi网络仍无法抓取。电脑型号为:MacBook Air M1。如果需要我上传日志我可以回复中附上。

感谢作者的贡献!非常好的插件!

希望能允许更多的PDF文件名称规则

除了在知网上直接下载的文献外,还有很多文献是个人之前整理和维护的,命名规则可能采取了 姓名_年份_期刊_标题 这类规则。希望Jasminum能够允许识别更多的PDF名称模式,或者支持用户手动编辑名称规则识别的模板。

在“设置-茉莉花”中,作者提供了一个格式模板({%t}_{%g}),但目前似乎只支持用下划线进行分割。即使我用空格或者连字符(“-”)替换模板里的下划线,以与我目前需要提取信息的历史文献进行匹配,也依然无法识别。所以格式模板似乎就只是用来调整识别时field的顺序。

作者是否考虑在代码中允许用户更灵活地设置此处的格式模板?

点击抓取以后没有反应

相关信息

  • jasminum版本:0.0.4
  • 文件名:基于视觉的自主装配系统轴孔位姿测量研究.pdf
  • 文件目录:C:\Users\HUAWEI\OneDrive - bjtu.edu.cn\学习资料\Zotero\storage\J3ATH6NU

演示

output

麻烦支持一下万方数据库

知网caj格式不太好用,而且新版知网搜索经常内容不对。转用万方,感觉还不错。但您的插件无法支持。请麻烦编写支持一下。小白,跪求大神

海外版下载硕博论文的pdf文件名变了,无法顺利识别meta信息(3个功能建议)

由于zotero只能打开pdf无法打开caj等,我倾向于在海外版知网一篇篇点击下载按钮,然后批量导入。前两周还没有问题,但刚才测试发现题目被改为英文了,类似于 Structural Confi_省略__type Tensegrity_陆游.pdf (测试中硕博论文的标题都变了,但论文期刊好像标题没有变过)。

  1. 如果我们从海外版下载pdf并进行匹配,我觉得目前仅根据题目的匹配方式还可以进一步改进,不清楚有没有可能在必要时从pdf内部读取到title等, (无论是pdf的meta信息还是全文的内容)?如果没有办法的话,有没有可能根据上述格式的标题格式进行匹配?至少对于硕博论文这种,在给定对应规则后应该还是挺容易匹配成功的。

  2. 从海外版下载,还有另外一个办法。我注意到至少当前(201017)在海外版的zotero connector是可以使用的 (奇怪的是国内版反而不行),因此,可以把那些条目都批量导入,但无法顺利查找到全文。此时必须一篇篇点击下载。那在都下载好以后,Jasminum有没有可能在指定特定存储pdf的文件夹以后,根据当前zotero collection里的条目以及该文件夹内的文件题目,进行匹配,这样就不必一篇篇手动进行匹配。考虑到知网经常变来变去,这个方案也许比1更加稳定,不过这也取决于zotero connector是否能顺利批量导入。 算是一个1的备用方案。

  3. 实在不行还有一个办法就是利用知网研学先批量下载下来。对于这类,他们的pdf标题好像仅包含文章标题(硕博论文不清楚),对于这类仅含有标题的pdf,希望插件也能帮助其找到meta信息。 不过利用知网研学的批量下载功能,貌似对于硕博论文还是说博士论文,依然仅能下载到caj。

最后,关于一篇篇点击下载pdf,不知道有没有更高效的方法,希望有更好办法的朋友提供建议。

对于知网不为国内用户提供方便的pdf下载功能表示深深的鄙视;另外zotero connector的不定期失效也不知道与知网方面是否有关系。下载文献是为了做学术研究,希望我们能自由的选择我们用的惯的文献管理软件,让研究者把精力集中在更重要的事情上。本身知网研学的功能也挺强,有他的用户,但有用户选择使用其他软件必然是有一些他们需要的功能而在这些方面知网研学不够方便。希望不要为了为其提高用户量而用这种方式强行为其他软件用户造成困难,这是一种无畏的内耗,与分享知识的初衷相悖。

功能改进:对扩展自动更新的支持

首先感谢您能制作此扩展,在此先谢谢您的付出
提一个小建议:在项目中加入update.rdf,并在install.rdf中使用updateURL引用此文件可以实现扩展在用户端的自动更新,便于用户始终使用最新版本。关于此文件的写法可以参考firefox扩展的开发指南,或者我这里有个写好的样本。当然,每次扩展更新时需要同步更新update.rdf中引用的下载链接

功能期望:希望能根据知网抓取的item的信息获取PDF或CAJ文件

使用场景:在没有下载权限的情况下,抓取了文献的信息,但是没有附件;当进入有下载权限的环境中时,可以通过右键直接下载PDF或者CAJ文件作为item的附件;而不用切换到浏览器去下载文件,再添加到zotero。有点类似于“Find Available PDF”功能。

插件冲突zotero-better-bibtex

版本
win10 1909 zotero版本5.089
安装jasminum和zotero-better-bibtex-5.2.43插件冲突,卸载zotero-better-bibtex-5.2.43就可以自动搜索知网的信息,其他的插件没发现冲突
只能卸载插件才能正常使用

自动化发布

看到前辈好久忘了把更新内容加进release了……所以搞了个自动化release轮子,用的github actions(就是顶上那个),不过建议前辈不要直接merge我的分支(lychichem/jasminum),因为可能会有文件冲突,最好先点actions再点set up a workflow yourself,然后复制我的.github/workflows/main.yml全文,以后每次更新完想release的时候只要打个v*的tag就能自动发布新版了(当然install.rdf和update.rdf还是应该要改成对应tag的版本号的)

功能改进:希望增强文件名分割的包容性

通常知网下载的文件名为:标题_姓名,使用{t}_{g}的设置没有问题;但是由于各种原因偶尔会出现文件名只有标题{t}的情况,这时候依现在的文件名分割设定,会将标题识别为作者姓名。此时只能修改设置,并不方便。如果修改判定条件,在文件名只有一部分的情况下,默认识别为文档标题{t},应该会比识别为作者姓名效率要高一些(一般很少人会将文件命名为作者姓名吧)。希望作者可以考虑。

功能期望:希望能增加更新item信息功能

在使用Endnote过程中有一个" Find Reference Updates"功能挺好的,可以直接比对库中的item信息和最新的检索到的item信息,并在原item中直接修改。但是Zotero中似乎没有这个功能,只能重新创建一个新的item然后删掉就的item。Zotero也只是在文件同步发生冲突时,才会列出两个item信息的冲突部分的比较。不知道能不能通过插件实现这一功能,例如知网中的网络首发文献的信息和后续印刷版文献信息的对比更新。

分享:通过item题录直接检索知网期刊的lookup engine

如果能整合进茉莉花,为已导入的没有附件的题录查找并下载pdf附件就更好了
{
"_name": "CNKI",
"_alias": "cn.cnki",
"_description": "Search CNKI",
"_icon": "https://oversea.cnki.net/kns/Content/images/gb/logo.png",
"_hidden": false,
"_urlTemplate": "https://kns.cnki.net/kns8/defaultresult/index?kw={z:title}",
"_urlParams": {
"field0": "DOI",
"q_text0": "{z:DOI}",
"type": "advance+search",
"rt": "all"
},
"_method": "POST",
"_urlNamespaces": {
"rft": "info:ofi/fmt:kev:mtx:journal",
"z": "http://www.zotero.org/namespaces/openSearch#",
"": "http://a9.com/-/spec/opensearch/1.1/"
},
"_iconSourceURI": "https://oversea.cnki.net/kns/Content/images/gb/logo.png"
},

有时会出现pdf抓取知网元素失败的情况

有时会出现pdf抓取知网元素失败的情况

我从知网下载了一篇学术论文,全名为:基于迁移学习的多源遥感影像建筑垃圾识别_李思琦.pdf。

通过拖拽的形式我将其导入到zotero中,但是出现报错弹窗,弹窗标题名为 [Javascript Application],对此我做了两种尝试:

  1. 设定jasminum插件的提取规则为 {%g}
    • 弹窗提示信息为 --> 作者:基于迁移学习的多源遥感影像建筑垃圾识别;篇名:李思琦;
  2. 设定jasminum插件的提取规则为 {%t}
    • 弹窗提示信息为 --> 作者: ;篇名:基于迁移学习的多源遥感影像建筑垃圾识别_李思琦;

此前我使用的jasminum插件为v0.04版本,当时抓取知网元素失败好像不会有弹窗显示,今天更新至v0.0.6版本才发现问题所在。

对于这个不便利的操作,我之前的解决方式是将提取规则设定为 {%t} ,并且在抓取元素之前都将pdf重命名为 基于迁移学习的多源遥感影像建筑垃圾识别.pdf 这种只含题目的名字。

能否提供一下更多的提取规则设定方式(当前只能找到{%g}{%t}{%y}这三种)?是否作者您已经提供了其他提取规则,只是没有展示出相应的文档?

望解决。辛苦!

请求改进对标签的处理

目前对标签的处理方式

  • 原始标签信息如下(标签在PDF文件上)
    image
  • 抓取知网元数据 操作完成后(标签在PDF上)
    image
  • 添加PDF书签 操作完成后(标签信息丢失)
    image

建议对标签的处理方式

  • 抓取知网元数据 操作完成后,标签可以转移到条目上
  • 添加PDF书签 操作完成后,丢失了标签信息,有点难受呜呜呜

不过,这还是个很优秀的插件啦,疯狂打call

期望功能

新抓取的文献附带有引用量,但是这个只能手动更新,请问能否在右键增加引用量更新选项?

抓取到的「卷」和「期」的值混在一起

OS 版本::macOS 10.15.6
Zotero 版本:5.0.89
插件版本:0.0.2

抓取到的「卷」和「期」的值会混在一起。
比如:
文章是第19卷第5期,那么识别出来的结果是。

卷:
期:05 vo 19

正确的结果应该是。

卷:19
期:05

看不见默认姓名是否拆分的选项

在最新的更新里,I0o0大大的代码中确实可以看到是否拆分姓名的偏好选择,但我在Preference -> Jasminum -> setting中的面板上看不到可供选择的设置项,不知道是不是我个人的问题呢。现在每次都还是要手动merge姓名,哭求大神解答。

无法自动识别

在导入中文PDF的时候,无法自动从知网加载数据:

插件配置如下:
image

文件信息如下:
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.