跳转到主要内容

带有Zotero集成的JupyterLab引用管理器

项目描述

jupyterlab-citation-manager

Github Actions Status CodeQL Binder PyPI version

状态:进行中。尚未准备好用于生产环境,可能包含错误。欢迎对该扩展的任何方面提供反馈。

JupyterLab引用管理器

  • 允许在Markdown单元格中添加引用,
  • 将文献目录与文档中的引用同步,
  • 支持数千种引用样式,
  • 提供一种有效搜索参考文献集合的方法,
  • 默认集成Zotero®服务(Zotero连接器),
  • 设计模块化,允许将来集成其他参考文献管理器。

每个参考文献(即所谓可引用项目)的数据存储在笔记本元数据中,而引用ID与可引用项目之间的映射存储在单元格元数据中。

  • 将每个可引用项目的完整数据存储在笔记本中可以
    • 允许多个用户使用单独的Zotero集合进行协作,
    • 保留已从私人收藏中删除的引用数据。
  • 在单元格元数据中存储引用与可引用项目之间的映射允许在不同笔记本之间复制单元格。

用法

使用Zotero进行身份验证

为了使您能够访问您的参考文献列表,您需要从您的 Zotero 账户获取一个访问 API 密钥 (请点击此处)。最基本且只读的密钥就足够了(并且推荐使用)。密钥将保存在您的设置中,因此您只需输入一次。

插入引用

通过在笔记本工具栏中点击“插入引用”按钮(add citation icon)或在键盘上按 Alt + C(提示:快捷键可在高级设置编辑器中自定义)。开始键入以按标题、作者或年份筛选参考文献。

animation of inserting citations

插入文献目录

通过点击(add bibliography icon)或在键盘上按 Alt + B 来插入文献目录。

animation of inserting bibliography

更改风格

要更改引用风格,请转到侧边栏(sidebar icon)并点击(change style icon)或按 Alt + S。最初只会显示一些通用样式的子集;开始键入名称以查找更多特定样式。

animation of changing style

同步参考文献

要同步您的参考文献集合,请转到侧边栏(sidebar icon)并点击(refresh collection icon)或按 Alt + U。更新可能需要几秒钟;状态栏上会出现进度条以保持您更新(如果您已启用)。

探索您的收藏

要获取 JupyterLab 打开时您收藏中参考文献的详细信息,请打开侧边栏(sidebar icon),并开始键入以查找感兴趣的项目。您将能够预览摘要、检查元数据,甚至在 JupyterLab(或新浏览器标签页 - 取决于您的偏好)中打开文章。

在打开浏览器时,当前文档中带有引用的参考文献将显示在顶部,并允许快速预览引用上下文以及通过单击引用上下文导航到文档中的相关位置。

自动迁移现有引用

打开笔记本时,扩展程序将自动检测以下格式的引用

  • cite2c,例如 <cite data-cite="itemID"></cite> 与相关的笔记本级元数据,
  • DOI 链接,例如 [(Krassowski 等人,2021)](https://doi.org/10.3389/fcell.2021.626821)(链接标签中的括号用作区分引用和非引用 DOI 链接的指示器)

并请求您的允许将其迁移到引用管理器格式。只有 markdown 单元格内的引用将被检测到。

迁移的引用将与其他提供者(如 Zotero)的引用分开存储,除非在可从引用提供者(如 Zotero)获取的项目中找到与给定的 ID、DOI、URL 或标题以及作者名单完全匹配的项目,在这种情况下将使用提供者的项目。

animation of migrating from cite2c and from DOIs

导出到 LaTeX

引用管理器支持将LaTeX作为输出格式之一。目前,引用以纯文本形式嵌入,而参考文献则使用语义化的thebibliography LaTeX环境。要配置笔记本以将引用导出到LaTeX

  1. 转到高级设置编辑器 -> 引用管理器,并将默认的outputFormat更改为latex
  2. 在单元格中插入参考文献,但不要使用Markdown单元格,而使用原始单元格
  3. 打开属性检查器侧边栏,将原始NBConvert格式更改为LaTeX(您需要选择原始单元格,以便下拉菜单出现)
  4. 文件菜单中选择保存并另存为…,然后选择LaTeX
  5. 使用首选工具(例如Linux上的pdflatex)编译生成的.tex文件到所需的输出,如PDF

LaTeX setup overview

要求

  • JupyterLab >= 3.3
  • 现代浏览器(具有ES 2019支持,例如Firefox 64+或Chrome 73+)
  • Zotero帐户

安装

要安装扩展,请执行

pip install jupyterlab-citation-manager

卸载

要删除扩展,请执行

pip uninstall jupyterlab-citation-manager

高级用法

引用集群

此扩展允许创建引用集群,这是一组按所选引用风格一起渲染的引用。您可以通过编辑单元格元数据手动创建引用集群。

计划从图形界面创建和编辑引用集群。

引用风格

此扩展包含来自Citation Language Styles(CSL)项目官方存储库的数千种引用风格。

如果您想添加自定义引用风格,可以将.csl文件放置在由以下返回的data位置之一的csl-styles文件夹中

jupyter --paths

.csl文件应遵循CSL v1.0.1规范(请参阅官方CSL规范)。

示例

如果jupyter --paths看起来像

config:
    /home/your_name/.jupyter
    /usr/local/etc/jupyter
    /etc/jupyter
data:
    /home/your_name/.local/share/jupyter
    /usr/local/share/jupyter
    /usr/share/jupyter
runtime:
    /home/your_name/.local/share/jupyter/runtime

并且您想添加您修改的APA风格,您会将my-custom-apa.csl放在/home/your_name/.local/share/jupyter/csl-styles中(您需要创建此文件夹),因此最终的结构类似

/home/your_name/.local/share/jupyter
├── csl-styles
│   └── my-custom-apa.csl
├── nbsignatures.db
├── notebook_secret
└── runtime

贡献

开发安装

注意:您需要NodeJS来构建扩展包。

jlpm命令是JupyterLab的yarn的固定版本,它是与JupyterLab一起安装的。您可以使用下面的yarnnpm代替jlpm

# Clone the repo to your local environment
# Change directory to the jupyterlab-citation-manager directory
# Fetch build requirements
jlpm run bootstrap
# Install package in development mode
pip install -e .
# Link your development version of the extension with JupyterLab
jupyter labextension develop . --overwrite
# Rebuild extension Typescript source after making changes
jlpm run build

您可以在不同的终端中同时监视源目录并运行JupyterLab,以监视扩展源的变化并自动重新构建扩展。

# Watch the source directory in one terminal, automatically rebuilding when needed
jlpm run watch
# Run JupyterLab in another terminal
jupyter lab

在监视命令运行时,每个保存的更改将立即在本地构建并提供给您运行的JupyterLab。刷新JupyterLab以在浏览器中加载更改(您可能需要等待几秒钟以重新构建扩展)。

默认情况下,jlpm run build命令为此扩展生成源映射,以便更容易使用浏览器开发工具进行调试。要为JupyterLab核心扩展也生成源映射,请运行以下命令

jupyter lab build --minimize=False

开发卸载

pip uninstall jupyterlab-citation-manager

在开发模式下,您还需要删除由jupyter labextension develop命令创建的符号链接。要找到其位置,您可以运行jupyter labextension list以确定labextensions文件夹的位置。然后您可以在该文件夹中删除名为jupyterlab-citation-manager的符号链接。

更新引用风格

引用风格是通过git子模块从CSL存储库检索的,并位于jupyterlab-citation-data存储库中。

您可以更新子模块以获取最新的引用风格

# fetch the latest styles from the currently tracked CSL version branch
git submodule update csl-styles
# store the information about the most recent commit in version control
git commit csl-styles

要更新版本分支

# replace v1.0.1 with the version to track
git submodule set-branch --branch v1.0.1 csl-styles
git commit csl-styles

法律声明

Zotero连接器

Zotero是数字奖学金公司的注册商标;我们的扩展(Zotero连接器)与该公司无任何关联。

CSL样式

CSL样式是由个人作者贡献给CSL项目的;本扩展中提供的所有样式均来自引用语言样式,并遵循Creative Commons Attribution-ShareAlike 3.0 Unported许可证

图标

有关包含在发行版中的图标的创建者和许可证信息,请参阅style/icons/README.md

citeproc-js

jupyterlab-citation-manager使用citeproc-js格式化引用和参考文献文本;citeproc-js根据CPAL 1.0(或更新版)或AGPLv3(或更新版)双许可;为了允许与其他作品一起分发此扩展,采用CPAL 1.0许可证重新分发citeproc-js。以下为citeproc-js CPAL 1.0许可证的附录A,仅供参考。

附录A. 公共普通许可版本1.0。“本文件的内容受公共普通许可版本1.0(“许可证”)约束;除非遵守许可证,否则不得使用本文件。您可以在https://open-source.org.cn/license/cpal_1-0/获取许可证副本。许可证基于Mozilla公共许可证版本1.1,但增加了第14条和第15条,以涵盖通过网络使用软件的情况,并为原始开发者提供有限的归属。此外,附录A已修改,以与附录B保持一致。根据许可证分发的软件按“原样”分发,不提供任何形式的保证,无论是明示的还是暗示的。有关许可证下权利和限制的特定语言,请参阅许可证。原始代码是citeproc-js。原始开发者不是初始开发者,是________。如果留空,则原始开发者是初始开发者。原始代码的初始开发者是Frank Bennett。Frank Bennett编写的所有代码部分均为版权(c)2009-2015。所有权利保留。贡献者___________。或者,本文件的内容可以按照GNU AFFERO通用公共许可证(AGPLv3许可证)的条款使用,在这种情况下,AGPLv3许可证的规定适用于上述规定。如果您只想在AGPLv3许可证的条款下使用您版本的此文件,而不允许他人使用您版本的此文件在CPAL下,请通过删除上述规定并替换AGPLv3许可证要求的通知和其他规定来表示您的决定。如果您不删除上述规定,则收件人可以按照CPAL或AGPLv3许可证使用您版本的此文件。”

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源分布

jupyterlab_citation_manager-1.0.0.tar.gz (3.1 MB 查看哈希值)

上传时间

构建分布

jupyterlab_citation_manager-1.0.0-py3-none-any.whl (167.1 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面