跳转到主要内容

控制台文献

项目描述

coBib

coBib

pipeline coverage PyPI

coBib是一个简单、基于命令行的参考文献管理工具。它是为了满足对像Mendeley或Zotero这样的完整引用管理器的一个易于使用的替代品的需求而诞生的。因此,它遵循一些基本的设计目标

  • 纯文本数据库:这意味着您可以完全访问和控制数据库。
  • git集成:作为上述功能的受益,您可以通过版本控制跟踪您的数据库。
  • 集中式数据库,位置无关的图书馆:这意味着coBib以集中化的方式管理数据库文件,但允许您将图书馆的实际内容分布在整个文件系统上(这是与papis的主要区别)。
  • 命令行和TUI支持:所有功能都可通过命令行以及基于textual的TUI访问

安装

对于所有常见用途,您可以通过pip安装coBib

pip install cobib

注意:如果您仍然安装了Python 2,请使用pip3

如果您还想安装手册页,您需要下载源代码并执行以下操作:

git clone https://gitlab.com/cobib/cobib
cd cobib
make install_extras

Arch Linux

coBib已打包在AUR中。

Windows

coBib可能在Windows上直接运行,但没有经过测试,因此不能保证。如果您使用Windows 10或更高版本并且遇到问题,您应该能够在Linux子系统中安装并使用coBib的全部功能。

入门指南

要开始,您必须初始化数据库

cobib init

如果您想启用git集成,应运行

cobib init --git

并启用 config.database.git(另请参阅配置)。

请务必查看我的快速入门博客文章,其中提供了比以下章节更详细的介绍!

导入您的图书馆

coBib提供了一个import命令,您可以通过它轻松地从另一个文献管理器导入您的图书馆。有关更多详细信息,请参阅

cobib import --help

到目前为止,coBib可以通过简单地运行来导入您的图书馆

cobib import --zotero

查看以下命令,手册页或在线文档以获取更多详细信息

cobib import --zotero -- --help

用法

添加新条目

您现在可以向数据库中添加新条目(另请参阅cobib.commands.add

cobib add --bibtex some_biblatex_file.bib
cobib add --arxiv <some arXiv ID>
cobib add --doi <some DOI>
cobib add --isbn <some ISBN>

注意:在添加来自.bib文件的数据时,请确保它处于BibLaTeX格式!

查看您的数据库和条目

您可以使用(另请参阅cobib.commands.list_)查看数据库内容

cobib list

您可以使用(另请参阅cobib.commands.show)显示特定条目

cobib show <some entry label>

您可以使用(另请参阅cobib.commands.open)打开条目的关联文件

cobib open <some entry label>

您甚至可以使用(另请参阅cobib.commands.search)在数据库中进行搜索

cobib search "some text"

编辑您的数据库

您可以使用(另请参阅cobib.commands.delete)删除条目

cobib delete <some entry label>

您可以使用(另请参阅cobib.commands.edit)手动编辑条目

cobib edit <some entry label>

您还可以一次性对多个条目应用简单修改(另请参阅cobib.commands.modify

cobib modify tags:private -- <some entry label> <another entry label> ...

导出您的数据库

您可以使用(另请参阅cobib.commands.export)导出数据库

cobib export --bibtex my_bibliography.bib
cobib export --zip my_library.zip

集成版本控制

如果您已启用git集成,您可以使用(另请参阅cobib.commands.undocobib.commands.redo)撤销和重新应用对数据库的更改

cobib undo
cobib redo

获取帮助

每个子命令都通过提供额外的帮助

cobib <subcommand> --help

,您可以在在线文档(如上所述)和手册页中找到大量信息

man cobib

文本用户界面

最后,您还可以使用coBib的TUI(文本用户界面)来获得更直观的体验(另请参阅cobib.ui.tui),只需键入

cobib

以下是列出数据库条目的TUI的示例截图

coBib TUI List

以下是列出搜索结果的示例截图

coBib TUI Search

配置

您可以通过在~/.config/cobib/中放置一个config.py文件来覆盖默认配置。开始使用此文件的最简单方法是复制example.py或使用

cobib _example_config > ~/.config/cobib/config.py

然后您可以根据需要修改它。

您还可以通过使用命令行参数-c--config或在环境变量COBIB_CONFIG中指定自定义路径来在运行时指定不同的配置文件。您还可以通过将此环境变量设置为以下值之一来禁用加载任何配置文件:"", 0, "f", "false", "nil", "none"

最后,请务必查看手册页(man cobib)和/或在线文档(如上所述)以获取更多信息。

插件

coBib支持插件实现!您可以在此文件夹中找到示例插件或阅读cobib_dummy的文档(在线查看托管文档)。

文档

coBib的文档托管在这里

如果您想在开发过程中生成本地版本,则需要克隆源代码,并安装 pdoc 以生成它。

git clone https://gitlab.com/cobib/cobib.git
cd cobib
pip install pdoc
pdoc -d google -e cobib=https://gitlab.com/cobib/cobib/-/blob/master/src/cobib/ -t html -o docs src/cobib tests

然后您可以从 docs/cobib.html 浏览文档。

历史记录

我开始这个项目是因为在寻找像Mendeley这样的流行参考文献管理器的替代品,它具有比日常使用的更多功能,但不允许我在命令行工作,这是我花在电脑上大部分时间的地方。

因此,我决定自己实现一个简单且快速的参考文献管理器。coBib是用Python编写的,并使用YAML文件以纯文本格式存储其参考文献。

变更日志

您可以在 此处 找到coBib历史上的详细变更。

许可证

coBib受MIT许可证的许可。

[^1]: 这个参考文献这样的例子会被文档生成器解析。如果您正在阅读这个README页面,您可能会发现在线文档更易于阅读。

变更日志

此文件将记录该项目所有显著的更改。

格式基于 Keep a Changelog,本项目遵循 语义化版本控制

未发布

5.1.3 - 2024-08-23

Pypi: https://pypi.ac.cn/project/cobib/5.1.3/

修复

  • 在TUI列表视图中修复了HomeEnd快捷键的行为 (!217)

5.1.2 - 2024-06-23

Pypi: https://pypi.ac.cn/project/cobib/5.1.2/

修复

  • 支持git存储库嵌套文件夹中的数据库位置 (!204)

5.1.1 - 2024-05-28

Pypi: https://pypi.ac.cn/project/cobib/5.1.1/

修复

  • 在打印变更日志时,不要删除列表缩进

5.1.0 - 2024-05-28

Pypi: https://pypi.ac.cn/project/cobib/5.1.0/

序言

查看我的博客文章,了解更多关于这个新版本的功能:https://mrossinek.gitlab.io/programming/cobib-becomes-fuzzy/

新增

  • 添加了近似(或模糊)过滤匹配和搜索功能 (#107,#130,!177)
    • 现在,listsearch命令分别支持以下功能以执行近似过滤匹配和搜索:
      • LaTeX序列可以解码为Unicode字符
        • 使用命令行中的--decode-latex
        • 设置config.commands.list_.decode_latex = True
        • 设置config.commands.search.decode_latex = True
      • 可以将Unicode字符转换为接近的ASCII等效字符
        • 使用命令行中的--decode-unicode
        • 设置config.commands.list_.decode_unicode = True
        • 设置config.commands.search.decode_unicode = True
      • 可以设置多个模糊错误(这需要安装可选依赖项 regex
        • 使用命令行中的--fuzziness <int>
        • config.commands.list_.fuzziness设置为某个整数
        • config.commands.search.fuzziness设置为某个整数
  • (开发)以下方法参数已转换为仅接受关键字参数
    • cobib.database.Entry.matches中:ignore_case
    • cobib.database.Entry.search中:contextignore_caseskip_files
  • (开发)已更改cobib.database.Entry.search的返回类型

5.0.1 - 2024-05-01

Pypi: https://pypi.ac.cn/project/cobib/5.0.1/

修复

  • config.database.format.label_suffix中使用空字符串作为分隔符的能力 (#138)

5.0.0 - 2024-04-28

Pypi: https://pypi.ac.cn/project/cobib/5.0.0/

新增

  • 通过入口点添加自定义commandsimportersparsers的能力 (#135, !139)
    • (开发)展示这些扩展的示例插件

更改

  • 整个 shell_helper 模块已被替换如下(!139)
    • 以下已弃用的辅助方法已被删除,未提供替代方法
      • _list_commands
      • _list_filters
      • _list_labels
    • 以下二级命令已重构
      • _lint_database 现在是 cobib.commands.lint.LintCommand
      • _unify_labels 现在是 cobib.commands.unify_labels.UnifyLabelsCommand
      • _example_config 现在是 cobib.config.command.ExampleConfigCommand
  • add 命令期间的手动消除歧义机制现在可以处理多个相关条目(#121,!168)
    • 这包括 取消 消除歧义和条目添加的能力

已删除

  • 之前弃用的所有命令的 console 属性已被删除(!139)
  • 之前弃用的所有命令的 prompt 属性已被删除(!139)
  • cobib.ui.shell_helpercobib.utils.shell_helper 模块已被删除(!139)
  • 之前弃用的 add 命令的 --update 参数(!168)
  • 之前弃用的 add 命令的 --skip-existing 参数(!168)
  • 之前弃用的 LabelSuffix.CAPTIAL 属性(!168)
  • Python 3.8 已不再支持(!173)

4.5.0 - 2024-03-17

Pypi: https://pypi.ac.cn/project/cobib/4.5.0/

新增

  • 新的 cobib.utils.context.get_active_app 方法,它返回任何正在运行的文本应用程序,并替代了 cobib.utils.prompt.Prompt.consolecobib.utils.progress.Progress.console(这些已被删除)(!137)
  • cobib.parsers.YAMLParser.parse 现在也可以直接解析字符串(而不仅仅是始终将参数解释为文件的路径)(!137)
  • review 命令(#131,!137)。请参阅其在线文档或 man 页以获取更多关于如何使用的详细信息。
  • cobib.database.Entry.merge 方法(!137)

更改

  • 日志消息现在将在 TUI 的 LogPanel 中显示(可以通过 z 键绑定切换)(#132,!133)
  • cobib.ui.components.prompt 模块已被重构为 cobib.utils.prompt(!133)

弃用

  • 所有命令的 console 参数已被弃用,因为它不再有任何效果(!133)
  • 所有命令的 prompt 参数已被弃用,因为它不再有任何效果(!133)
  • 在下一个版本中,以下 shell_helper 命令的访问方式将发生变化
    • cobib _lint_database 将成为 cobib lint
    • cobib _unify_labels 将成为 cobib unify_labels
    • cobib _example_config 将成为 cobib example_config

修复

  • _lint_database 期间将绕过缓存的数据库加载(#133)
    • 为此,向 Database.read 方法中添加了 bypass_cache 关键字参数

已删除

  • 官方 Windows 支持标签。它 可能 会有所作用,但不提供任何保证(#136)

4.4.0 - 2023-12-15

Pypi: https://pypi.ac.cn/project/cobib/4.4.0/

新增

  • 一个基本的缓存机制以加速数据库加载。默认情况下启用此功能,并将其缓存存储在 ~/.cache/cobib/databases/。您可以通过 config.database.cache 配置此位置,甚至可以通过将此设置更改为 None 来完全禁用缓存。(另见 #129 和 !108)
  • modify 命令中添加了 -r/--remove 选项(#128)
    • 这在意义上与 -a/--add 相反,即它会尝试从列表中删除指定的修改,或从数值中减去一个数字
    • 此选项不支持列表或数字之外的其他字段类型
  • list 命令中添加了 -l/--limit 选项(#127)
    • 在公共 API 中公开了 ListCommand.sort_entries 方法
    • 在公共 API 中添加了 ListCommand.execute_dull 方法
  • 现在,searchexportmodify 命令也支持排序和限制选项,可以将这些选项传递给 list 命令(以及已存在的过滤选项)
  • 允许您配置 TUI 搜索结果视图中树节点默认折叠状态的 config.tui.tree_folding 设置
  • 在 TUI 搜索结果视图中,使用 ENTER 绑定来递归切换当前节点的所有折叠

更改

  • 使用 TUI 时,现在可以使用 :show <label> 命令跳转到指定的标签(#126、!116)
  • search 命令现在实时报告其进度(!117)

修复

  • 解除了 TUI 列表视图的垂直滚动条与滚动偏移量的绑定

4.3.1 - 2023-11-12

Pypi: https://pypi.ac.cn/project/cobib/4.3.1/

重大变更

请注意,v4.3.0 中引入的详细作者信息解析可能导致自定义 config.database.format.label_default 设置被破坏。此错误修复版本旨在强调此重大变更并更新示例配置文件中的文档。为了简洁起见,以下是应用于示例的更改

  • 旧:"{unidecode(author.split(' and ')[0].split()[-1])}{year}"
  • 新:"{unidecode(author[0].last)}{year}"

4.3.0 - 2023-11-12

Pypi: https://pypi.ac.cn/project/cobib/4.3.0/

序言

详细作者

coBib 现在能够存储更详细的作者信息(参见 #92 和 !88)。这意味着,条目的 author 字段将进行更详细的分析,coBib 会将姓名分开为姓氏、名字以及名字前缀和后缀。新的设置 config.database.format.author_format 决定是否将此详细信息直接存储在数据库中(AuthorFormat.YAML 设置;新默认值)或仅在运行时构建,作者字段仍以 BibLaTeX 形式保存(AuthorFormat.BIBLATEX)。

请注意,YAML 格式还意味着允许 Unicode 字符,并且将 不会 以 LaTeX 形式进行编码。这会影响您可能需要的搜索格式。有关更多信息,请参阅 #130。

如果您有公司名称或任何想要按原样处理的作者姓名,可以简单地将其括在花括号中(例如,{My Company})。有关详细信息,请参阅 cobib.database.Author 的在线文档以及上述设置。

Wiki

coBib 现在有 Wiki,我们可以在这里收集有用的配置资源和可能未包含在完整文档中的其他详细信息。

例如,如果您对跟踪数据库的更多元数据感兴趣(如 #123 所建议),请务必查看 此 Wiki 页面

新增

  • open 命令的 --field 参数的 -f 简写别名
  • OpenCommandopened_entries 属性(在 PostOpenCommand 钩子期间可访问)
  • 新的 git 命令,简化在数据库上运行 git 操作(#124)
  • TUI 中 HomeEndPageUpPageDown 的新绑定
  • (DEV) 添加了新的 DEPRECATED 日志级别,其值为 45
  • Python 3.12 现已正式测试并得到支持
  • config.commands.show.encode_latex 设置
  • encode_latex 属性添加到 BibtexParser
  • config.database.format.verbatim_fields 设置
  • config.database.format.author_format 设置。新默认行为是以 YAML 形式存储详细作者信息
  • encode_latex 关键字参数添加到 Entry.stringify 方法
  • Entry.formatted 方法。这替代了 Entry.escape_special_chars 方法。

更改

  • open 命令期间找不到文件时将记录错误
  • 以下命令现在在通过TUI的:提示符运行时被特别处理。
    • init:将记录错误
    • git:将记录错误
    • show:将记录警告

弃用

  • LabelSuffix.CAPTIAL值因为拼写错误。请使用LabelSuffix.CAPITAL代替。

修复

  • 通过TUI的:提示符触发的非异步命令将不再破坏它(#125)
  • 确保下载的数据使用UTF-8编码(这解决了许多关于特殊字符的奇怪问题)
  • LabelSuffix.CAPITAL值的拼写(以前拼写为LabelSuffix.CAPTIAL

已删除

  • Entry.escape_special_chars方法。请使用Entry.formatted代替。

4.2.0 - 2023-08-08

Pypi: https://pypi.ac.cn/project/cobib/4.2.0/

新增

  • 添加了config.tui.scroll_offset设置
  • open命令添加了--field命令行选项
  • (DEV) 添加了新的HINT日志级别,其值为35,因此可以以比WARNING更高的优先级向用户提供信息
  • 添加了新的config.tui.preset_filters (#114)
    • 可以通过TUI的p键绑定选择预设过滤器
    • 可以通过直接按相应的数字选择前9个过滤器
    • 0将重置任何应用的过滤器
  • 实现了特殊标签(#63,!83)
    • 添加了新的内置标签,这些标签将触发条目的特殊高亮:newhighmediumlow
    • 添加了新的config.theme设置部分来配置这些设置
    • 您还可以通过config.theme.tags.user_tags添加更多特殊标签
  • search命令添加了--skip-files命令行选项

更改

  • 条目标签中的Unicode符号现在将被ASCII符号替换(#119,#120)
    • 这通过config.database.format.default_label设置进行配置,因此如果您为该设置使用自定义值,请确保更新您的配置以使用此功能
  • 添加了一些关于标签歧义的用户可见日志消息(另见#121)
  • 当YAML解析器遇到相同的标签时,将添加警告(这些标签通常不应出现在数据库中,但如果出现,coBib实际上不知道如何解决此问题)
  • DOI重定向链接现在会递归地跟随(最多3次),从而提高了PDF下载链接检测过程(#97)

弃用

  • 弃用了config.commands.search.highlights部分,以支持config.theme.search

修复

  • 在TUI的列表视图中保留滚动位置

4.1.0 - 2023-06-11

Pypi: https://pypi.ac.cn/project/cobib/4.1.0/

新增

  • 添加了以下设置,指定在执行相应命令时是否保留关联文件
    • config.commands.delete.preserve_files
    • config.commands.edit.preserve_files
    • config.commands.modify.preserve_files
  • 在删除条目之前添加了确认提示(#110)
    • 可以通过将config.commands.delete.confirm设置为False来禁用此提示
  • listsearch命令添加了--no-ignore-case(简写为-I)命令行选项(#116)
  • deleteeditmodify命令添加了--no-preserve-files命令行选项(#116)
  • 添加了config.commands.search.context设置,该设置配置默认提供的上下文行数
  • 添加了更多选项来配置自动下载行为
    • 新的config.commands.add.skip_download设置
    • 新的add命令的--force-download选项
    • 新的config.commands.import_.skip_download设置
    • 新的import命令的--force-download选项
  • 退出TUI时,将提示用户确认(!71)

更改

  • 通过利用文本的 Screen 概念重构了 TUI (#111,!71)
    • 这意味着 TUI 的外观略有不同,但并没有发生真正的功能变化
    • 当输出超过可用空间时,现在可以滚动 Entry 的视图
  • BeautifulSoup HTML 解析器切换到 lxml
    • 这应该会给出更准确的结果,但增加了额外的依赖项

弃用

  • 以下 shell 辅助工具不再使用,zsh 完成功能已被移除。因此,这些方法将在未来被移除
    • cobib _list_commands
    • cobib _list_filters
    • cobib _list_labels
    • 如果您在使用 CLI 时看到与此相关的警告,您可能仍然安装了(现在已移除)的 zsh 完成脚本。您应该删除位于您的 $FPATH 环境变量中列出的目录之一的 _cobib 文件。

修复

  • 在排序操作期间正确预填充 TUI 提示 (#117)
  • 保留 config.commands.list_.default_columns 的值,并在 TUI 中不再按顺序排序时正确删除字段 (#117)
  • 在更改数据库内容后(例如通过 add (#113) 或 delete (#113) 或 edit (#118))正确更新 TUI 中的条目列表
  • 在同一个 TUI 会话中添加的新条目上执行文件访问操作失败的问题,因为路径没有被正确迭代
  • 在 TUI 中实时更新下载进度条 (#112)

已删除

  • 粗糙且非常慢的 zsh 完成脚本

4.0.0 - 2023-05-20

Pypi: https://pypi.ac.cn/project/cobib/4.0.0/

破坏性更改

  • 配置设置现在不能通过项访问设置,而必须使用属性语法。例如您需要更改
    config["database"]["git"] = True
    
    config.database.git = True
    
    • config.commands.list 部分重命名为 config.commands.list_
    • 已完全删除 config.tui 部分
  • cobib.commands.list 模块移动到 cobib.commands.list_
  • 所有命令和导入器相关事件的函数签名已更改!有关更多详细信息,请参阅在线文档

新增

  • Python 3.11 现已正式测试并支持
  • 全面重写所有命令以使用 rich 以获得更好的 CLI (#78,!51)
  • 基于 textual 全面重写 TUI (#78,!51)
  • add 命令的 --disambiguation 参数 (#99,!58)
  • list 命令的 --ignore-case 参数 (#105)
    • 这还带来了新的 config.commands.list_.ignore_case 设置
  • search 命令现在可以一次性接受多个查询字符串,这些字符串将独立搜索 (#106)

更改

  • config.parsers.yaml.use_c_lib_yaml 的默认值现在是 True,如版本 3.4.0 中宣布的那样
  • 重构整个配置为数据类 (!63)
    • 这意味着设置只能通过属性设置
    • 但作为好处,维护性和文档显著提高
  • 所有命令相关事件的函数签名已更改!请参阅在线文档以获取更多详细信息。 (!63)
  • 所有导入器相关事件的函数签名已更改!请参阅在线文档以获取更多详细信息。 (!66)
  • 改进了 cobib.commandscobib.importers 模块的 API (!64)
    • 这不应该对最终用户产生任何影响
  • cobib.commands.list 模块移动到 cobib.commands.list_

弃用

  • add命令中,--update参数已被弃用,改用--disambiguation update
  • add命令中,--skip-existing参数已被弃用,改用--disambiguation keep

修复

  • 在添加标签消歧义时,检测条目是否已经存在的功能在版本3.3.0中出现问题,现在通过在add命令期间的交互式提示进行了修复

已删除

  • 在设置已删除的config.database.format.month时触发的警告(在3.1.0中已删除)
  • Python 3.7不再受支持

3.5.5 - 2023-04-11

Pypi: https://pypi.ac.cn/project/cobib/3.5.5/

修复

  • 打开非列表类型字段(#100)

3.5.4 - 2022-12-26

Pypi: https://pypi.ac.cn/project/cobib/3.5.4/

修复

  • 在搜索过程中遇到的缺失文件将优雅地记录警告而不是强烈警告
  • 处理TUI中的换行字符(#98)

3.5.3 - 2022-11-16

Pypi: https://pypi.ac.cn/project/cobib/3.5.3/

修复

  • ISBN解析器中作者连接不正确
  • 使用消歧义标签作为下载文件名(#96)

3.5.2 - 2022-05-22

Pypi: https://pypi.ac.cn/project/cobib/3.5.2/

修复

  • 在BSD平台上运行TUI(!52)

3.5.1 - 2022-04-25

Pypi: https://pypi.ac.cn/project/cobib/3.5.1/

修复

  • 在尝试写入之前安全地检查缓存是否存在(#94)

3.5.0 - 2022-01-13

Pypi: https://pypi.ac.cn/project/cobib/3.5.0/

新闻:coBib v4.0将带来一个全新的UI!

计划是将richtextual切换到当前的curses TUI。这将打开一些实现更现代UI的绝佳可能性。

然而,这个变化将需要进行一些重大的重构,包括API的破坏性更改和一些用户配置选项。这也会在风格上有一个相当大的变化。因此,我将尝试在2023年1月1日之前通过错误修复版本支持v3.5。

可能需要几个月才能发布v4.0,但我现在已经开始开发它。您可以在这里跟踪进度:https://gitlab.com/cobib/cobib/-/issues/78

新增

  • 可以通过环境变量COBIB_CONFIG禁用配置加载
    • 完全禁用加载的值有:"", 0, f, false, nil, none
    • 您还可以在这个变量中指定自定义配置文件的路径

已删除

  • 已完全删除INI风格的配置(自3.0.0弃用以来 - 2021-04-10)

3.4.0 - 2021-12-01

Pypi: https://pypi.ac.cn/project/cobib/3.4.0/

  • coBib现在需要requests-oauthlib
    • 从技术上讲,目前这是一个可选依赖项,但很可能很快就会成为必需项

新增

  • 新的config.parsers.yaml.use_c_lib_yaml设置,显著提高了加载性能
    • 此设置将在4.0.0版本中将默认值更改为True
  • Import命令(#86,!49)
    • 可以用来导入来自其他参考文献管理器的库(参见下一项)
    • 有关更多信息,请参阅cobib import --help
  • cobib.importers模块
    • 提供用于各种其他参考文献管理器的导入器类
    • 这些将在运行时在cobib import命令下注册
    • 本发行版提供了--zotero导入器
    • 有关更多信息,请参阅cobib import --zotero -- --help
  • config.logging.cache选项,指定简单的json缓存的位置
  • config.commands.open.fields选项,指定要检查可打开URL的数据字段名称(#89)

更改

  • PreFileDownload事件现在接受一个额外的参数:headers: Optional[Dict[str, str]]

修复

  • 下载的文件名不会重复.pdf后缀

3.3.2 - 2021-11-17

PyPI: https://pypi.ac.cn/project/cobib/3.3.2/

修复

  • 在调整大小事件期间重新启用终端键盘
    • 这确保在从外部编辑器返回后,箭头键的行为正确
  • 关闭TUI后清除屏幕,以删除所有屏幕痕迹

安全性

  • 移除使用DOI解析器时的警告,因为与#91相关的上游问题已修复

3.3.1 - 2021-10-19

PyPI: https://pypi.ac.cn/project/cobib/3.3.1/

修复

  • 对已符合config.database.format.default_label_format的Entry标签的错误标签消歧义(#87,!47)
  • 在统一数据库时不添加空文件列表

安全性

  • 使用DOI解析器时记录警告(因为#91)

3.3.0 - 2021-10-04

PyPI: https://pypi.ac.cn/project/cobib/3.3.0/

新增

  • 打印自上次运行版本以来的Changelog(缓存在config.logging.version中)(#82)
  • AddCommand现在有一个新的--update选项(#79,!41)
  • _lint_database实用程序现在接受--format参数,它自动解决所有lint消息(#81,!42)
  • 新的URLParser(通过cobib add --url <URL>可用)(#84,!44)
    • 它尝试从纯URL导入
    • 同时,arXiv、DOI和ISBN解析器现在也支持包含匹配标识符的URL
  • ModifyCommand--dry参数中,以防止在大批量修改期间出现错误
  • config.database.format.label_defaultconfig.database.format.label_suffix选项(#85,!45)
    • 标签将自动根据默认选项进行格式化
    • 如果标签与现有的标签冲突,将使用后缀选项进行消歧义
    • AddCommand有一个新的--skip-existing选项,该选项禁用自动标签消歧义
    • 使用cobib _unify_labels --apply统一数据库中的所有标签
  • 可订阅的事件(#71,!46)
    • 允许在特定情况下注册要执行的钩子
    • 更多信息请参阅在线文档

更改

  • 在修改modify命令时遇到未知变量时,它回退到尝试变量的名称而不是空字符串

已删除

  • AddCommand-s选项不再可用。您需要编写--skip-download
  • list命令中的ID过滤器参数(在v3.2.0中已弃用,改用label过滤器)

3.2.1 - 2021-07-15

PyPI: https://pypi.ac.cn/project/cobib/3.2.1/

修复

  • 在一次性添加多个条目时,在遇到单个重复项后继续添加(#83)

3.2.0 - 2021-06-26

PyPI: https://pypi.ac.cn/project/cobib/3.2.0/

新增

  • 为arXiv ID和配置的DOI基本自动下载PDF文件(#25,!35,!39)
    • 默认下载位置可以通过config.utils.file_downloader.default_location配置
    • 对于每个添加项,可以通过AddCommand--path关键字选项覆盖此默认值
    • 如果文件系统中的此位置已存在文件,则跳过下载
    • DOI条目的下载必须配置在config.utils.file_downloader.url_map中的URL模式
    • 对于每个添加项,可以使用--skip-download跳过整个自动下载
  • 自动期刊缩写(#62,!36)
    • 用户可以通过config.utils.journal_abbreviations配置期刊缩写列表
    • 如果存在,coBib将存储期刊的扩展形式
    • 用户可以在导出时自动将其转换为缩写形式(请参阅新的--abbreviate--dotless参数)
  • 通过禁用TUI提供对Windows的初步支持
  • 向以下命令中添加了--preserve-files参数。除非指定,否则这些命令将删除/重命名受影响条目的相关文件
    • 删除命令
    • 编辑命令
    • 修改命令

更改

  • 修改命令ModifyCommandmodifications被解释为f-string(#77,!37)
    • 可用的变量是条目的标签和数据字段
  • 任何ListCommand过滤器都被解释为正则表达式模式(#76)

弃用

  • ID过滤器参数已被完全替换为label,统一了CLI API。在v3.3.0版本中将放弃支持

修复

  • 删除(大部分)重复的日志消息

3.1.1 - 2021-05-25

Pypi: https://pypi.ac.cn/project/cobib/3.1.1/

修复

  • Pypi包元数据

3.1.0 - 2021-05-24

Pypi: https://pypi.ac.cn/project/cobib/3.1.0/

新增

  • 数据库的YAML格式已扩展以支持以下内容:(#55)
    • 数字可以存储为整数
    • ID字段不再需要,将根据标签正确推断
    • 以下字段可以存储为列表:filetagsurl
  • 添加了三个新的配置选项来补充上述列表格式选项
    • config.database.stringify.list_separator.file
    • config.database.stringify.list_separator.tags
    • config.database.stringify.list_separator.url
  • 已添加shell实用程序_lint_database,可用于检测数据库的可能改进
  • 实现了ModifyCommand的追加模式(#60)
    • 指定-a/--add将修改值添加到条目的字段中,而不是覆盖它
    • 这可用于字符串或列表连接,甚至在数字字段上进行数字加法

更改

  • 使用相对于用户主目录的文件路径(通过将os.path替换为pathlib实现)(#69)
  • shell辅助程序_list_tags已重命名为_list_labels
  • (开发):将loggingzsh_helper模块移动到cobib.utils包中
  • 不再从标签中删除+符号(这是从v1.0.0之前的版本中遗留的)

弃用

  • 弃用了config.database.format.month设置,转而采用正确的三位字母代码编码来支持常见的引用风格宏(!34)

修复

  • edit命令期间重命名标签不会留下之前的标签条目
    • 后续操作还确保了条目重命名是在原地进行的(#75)
  • list命令的排序

3.0.0 - 2021-04-10

Pypi: https://pypi.ac.cn/project/cobib/3.0.0/

  • 从现在起,coBib是官方的拼写方式!

新增

  • coBib的文档现在由pdoc生成,并托管在https://cobib.gitlab.io/cobib/cobib.html
  • (开发):添加了cobib.database.Database-Singleton以集中管理文献运行时数据(!28)
  • 新的选项config.database.format.suppress_latex_warnings
  • 新的选项config.commands.edit.editor,它优先于$EDITOR变量

更改

  • INI风格的配置替换为基于Python的配置(#54,!25)
  • (开发):将cobib.parser.Entry移动到cobib.database.Entry
  • 已提取cobib.parsers模块(为#49、!28做准备)
  • 在导出为Zip文件时保留相关文件的文件名
  • 尝试添加具有现有标签的条目时,不会写入数据库,并且会提前引发警告
  • 仅在将条目保存到数据库时才进行月份转换和特殊字符转义
  • 现在可以通过config.logging.logfile配置默认日志文件的路径,默认为~/.cache/cobib/cobib.log

弃用

  • 弃用了INI风格的配置
    • 不会向此风格添加新的配置选项
    • 只有完全破坏可用性的错误才会通过此配置样式修复
    • 在2022年1月1日将完全移除对旧版的支持

修复

  • 现在,ZSH辅助工具将尊重-c-l-v命令行选项
  • RedoCommand应该仅撤销先前的UndoCommand操作(#65)
  • SearchCommand获得了一些上下文改进,并正确地分割grep结果
  • 当光标位于新缓冲区高度多行以下时,解包不会使TUI崩溃
  • 行续行引导不会被当前行高亮所吞噬
  • 确保TUI的最上面一行不会变成负数
  • TUI的尺寸调整事件处理程序
  • ISBNParser抛出的JSONDecodeError被捕获并优雅处理

已删除

  • 函数read_database()write_database()不再可用(!28)

2.6.1 - 2021-02-05

Pypi: https://pypi.ac.cn/project/cobib/2.6.1/

注意:2.6.1不是从master-分支发布的,这导致了非线性开发。

更改

  • init --git将不会初始化存储库,除非git已经配置了nameemail

修复

  • TUI在尝试退出时不再崩溃(#64)

2.6.0 - 2020-12-31

Pypi: https://pypi.ac.cn/project/cobib/2.6.0/

新增

  • Git集成(#44,!20)
    • 将自动跟踪对数据库文件所做的任何更改(使用git)
    • 必须通过将DATABASE/git选项设置为True并运行cobib init --git来启用
    • 请注意,您必须在git配置中至少设置一个nameemail
  • 对数据库的git历史记录进行撤销/重做操作(#59,!23)
    • 出于明显的原因,这些命令需要启用Git集成(见上文)
  • TUI内部的Prompt命令
    • 允许执行任意的CoBib CLI命令
    • 默认键绑定是:
  • Modify命令:(#60,!24)
    • 允许以<field>:<value>格式批量修改多个条目
    • 目前,这将始终用新值覆盖字段!
    • 计划在未来的版本中添加值的追加扩展
    • 要修改的条目集可以像使用export命令一样通过list-命令过滤器或手动选择(通过设置--selection标志)来指定

更改

  • 视口历史记录被正确保留(#21,!22)
    • 这允许在显示条目的同时进行搜索,并在退出搜索后返回到正确的视图
    • 更改主要涉及对cobib/tui模块的重构
  • modifysearch命令的positional参数在内部已从list_arg重命名为filter
    • 这不应该对最终用户有可见的影响,但对开发人员可能很重要

修复

  • 优雅地处理多个弹出窗口的终端尺寸问题(#58)
  • 在TUI中删除时捕获stdout上的消息
  • 向TUI帮助菜单添加了缺少的帮助字符串

已删除

  • init命令的--force参数现在已被移除(在v2.5.0中被弃用)。

2.5.0 - 2020-12-08

Pypi: https://pypi.ac.cn/project/cobib/2.5.0/

新增

  • 支持多个关联文件(#42,!19)
  • 打开具有多个关联文件的条目时具有交互式菜单(!19)

弃用

  • init命令的--force参数已被弃用。我认为没有理由在CLI中提供用户删除其数据库文件的选项。相反,他们可以简单地手动编辑文件。

修复

  • 始终将年份存储为字符串,以便与bibtexparser兼容
  • 优雅地处理无效的arXiv或DOI ID(#57)

2.4.1 - 2020-11-01

Pypi: https://pypi.ac.cn/project/cobib/2.4.1/

修复

  • ISBN解析器缺少ENTRYTYPE,并且没有使用字符串对数字字段进行操作
  • ISBN解析器现在可以处理空条目(#53)
  • TUI在stdout/stderr消息超出窗口宽度时不会崩溃
  • 命令行界面(TUI)尊重提示处理中的引号字符串(#52)

2.4.0 - 2020-10-14

Pypi: https://pypi.ac.cn/project/cobib/2.4.0/

新增

  • 用于手动添加条目的 FORMAT/default_entry_type 选项
  • 通过 edit -a new_labeladd -l new_label 可用的 手动 插入模式
  • 用于添加新条目的基于 ISBN 的解析器(#45)
  • 基于 TUI 的 select 命令(及其设置)(#8,!18)
  • export 命令的 --selection 参数(!18)

更改

  • TUI 颜色高亮现在优先考虑(!17)

修复

  • open 命令期间支持文件字段中的 URL(#47)
  • 当遇到长的提示输入时,TUI 不再崩溃(#48)
  • edit 命令可以处理以常用子字符串开头的标签(#46)
  • 支持单行上的多个 ANSI 颜色(#50)

2.3.4 - 2020-09-14

Pypi: https://pypi.ac.cn/project/cobib/2.3.4/

修复

  • 另一个 AUR 软件包安装错误

2.3.3 - 2020-09-14

Pypi: https://pypi.ac.cn/project/cobib/2.3.3/

修复

  • AUR 软件包安装错误

2.3.2 - 2020-09-10

Pypi: https://pypi.ac.cn/project/cobib/2.3.2/

新增

  • 默认不区分大小写搜索的选项(DATABASE/search_ignore_case

更改

  • 清除提示,会中止命令执行

修复

  • 搜索命令正确处理 TUI 中的缺少参数(#43)

2.3.1 - 2020-09-10

Pypi: https://pypi.ac.cn/project/cobib/2.3.1/

修复

  • 有缺陷的 Pypi 软件包

2.3.0 - 2020-09-10

Pypi: https://pypi.ac.cn/project/cobib/2.3.0/

新增

  • 已添加日志记录功能。可以通过 -v(INFO)和 -vv(DEBUG)控制详细程度。一旦 TUI 启动,所有日志输出都重定向到 /tmp/cobib.log
  • 可以使用命令行参数 -l--logfile 来指定日志输出的路径。这将覆盖 /tmp/cobib.log 位置。
  • 添加了 TUI/scroll_offset 设置。它默认为 3,其行为类似于 Vim 的 scrolloff 设置。
  • 添加了配置验证。这扩展了日志记录功能,以支持更多的运行时调试信息。
  • 支持弹出窗口:标准输出和标准错误消息以类似于帮助窗口的方式显示

更改

  • -v 命令行参数现在指的是 --verbose 而不是 --version
  • 通过不在 TUI 外部刷新数据库,提高了 add 命令的性能

修复

  • 调整大小时发生的错误导致窗口宽度大于缓冲区宽度(#39)
  • 不要在标签中转义特殊字符(#40)
  • 避免在文件路径中特殊字符编码(#32)

2.2.2 - 2020-08-13

Pypi: https://pypi.ac.cn/project/cobib/2.2.2/

修复

  • 如果视口宽度大于缓冲区,则当前行高亮没有正确重置
  • ignore_non_standard_types 设置没有效果

2.2.1 - 2020-08-10

Pypi: https://pypi.ac.cn/project/cobib/2.2.1/

更改

  • 在 TUI 行包装时,缩进到标签列之后(#26)
  • 在文档文件夹中将 default.ini 重命名为 example.ini

修复

  • 在视口宽度之后没有正确重置当前行高亮
  • 正确转换布尔配置选项(#34)
  • 修复了在视口为空时,TUI 在 wrap 命令中的崩溃(#37)
  • 默认配置设置是集中和一致管理的(#35)

2.2.0 - 2020-07-12

Pypi: https://pypi.ac.cn/project/cobib/2.2.0/

新增

  • 允许配置用于打开关联文件的程序
  • 在真正退出 CoBib 之前提示用户(#33)
  • 实现了搜索命令(#7,!12)

修复

  • open 命令的默认值设置不正确

2.1.0 - 2020-06-14

Pypi: https://pypi.ac.cn/project/cobib/2.1.0/

新增

  • 添加了半页和全页滚动(#22)

更改

  • bibtex 数据导入默认不忽略非标准条目类型(#28)
  • 抑制LaTex编码警告,除非添加条目时(#29)
  • 搜索选择 在未实现时向提示符打印警告

修复

  • init 命令确保数据库文件目录存在
  • 在关闭 帮助 菜单后删除窗口残留物(#20)
  • 配置文件检测缺少用户主目录扩展(#31)

2.0.0 - 2020-06-06

Pypi: https://pypi.ac.cn/project/cobib/2.0.0/

修复

  • 尊重TUI中的排序顺序反转和过滤 XOR(#18)
  • Mac OS上的 edit 命令(#19)

更改

  • 使 init 命令免受数据库覆盖的安全风险
  • TUI:默认按反向顺序列出条目(配置:TUI/reverse_order)

2.0.0b4 - 2020-05-16

Pypi: https://pypi.ac.cn/project/cobib/2.0.0b4/

修复

  • 在更新缓冲区时重置视口位置

2.0.0b3 - 2020-05-16

Pypi: https://pypi.ac.cn/project/cobib/2.0.0b3/

修复

  • 正确断言有效当前行号

2.0.0b2 - 2020-05-16

Pypi: https://pypi.ac.cn/project/cobib/2.0.0b2/

修复

  • 修复了TUI启动

2.0.0b1 - 2020-05-16

警告:请勿使用!此版本中的TUI已损坏!

Pypi: https://pypi.ac.cn/project/cobib/2.0.0b1/

修复

  • 打开没有关联文件的条目时,TUI不会崩溃
  • 过滤和编辑后正确重置当前行位置

2.0.0b0 - 2020-04-28

Pypi: https://pypi.ac.cn/project/cobib/2.0.0b0/

更改

  • 内部:将配置重构为类
  • 集中数据库处理以改进性能(#12,!9)

修复

  • 在滚动视口后,Show 命令不会中断(#13)

2.0.0a2 - 2020-04-27

Pypi: https://pypi.ac.cn/project/cobib/2.0.0a2/

新增

  • 用户配置选项
    • TUI颜色
    • TUI键绑定
    • TUI默认列表参数
  • 帮助窗口高亮显示

更改

  • 在更新列表视图时,排序和过滤命令保持持久

2.0.0a1 - 2020-04-23

Pypi: https://pypi.ac.cn/project/cobib/2.0.0a1/

新增

  • 添加了基于curses的TUI基本功能(#5,!7)

更改

  • 内部:将命令重构为单独的模块

1.1.0 - 2020-03-28

Pypi: https://pypi.ac.cn/project/cobib/1.1.0/

新增

  • 添加 FORMAT.month 配置选项以配置月份字段的默认类型(默认为 int)(#3,!4)
  • 转义特殊的LaTeX字符(#2,!5)

修复

  • list 在查询的字段不存在于任何参考文献条目时不再因 KeyError 而中断(!2)
  • --label 现在可以正确覆盖ID(#4,!3)

更改

  • set_config() 和全局 CONFIG 导出为单独的模块

1.0.2 - 2020-01-12

Pypi: https://pypi.ac.cn/project/cobib/1.0.2/

注意:这次删除不视为MINOR版本升级,因为这本质上是一个长期存在的错误修复

移除/修复

  • 从pdf文件中提取doi(476efc4f)
    • 也移除了通过pdf文件直接添加条目的能力

1.0.1 - 2020-01-12

Pypi: https://pypi.ac.cn/project/cobib/1.0.1/

更改

  • 为pypi提供元数据

1.0.0 - 2020-01-12

第一个MAJOR版本。也通过Pypi提供:https://pypi.ac.cn/project/cobib/1.0.0/ 该项目从 CReMa 重命名为 CoBib

新增

  • 允许对列表输出进行排序(2a5a94f1)
  • 原始且缓慢的 (!!!) zsh补全(9f28f441)
  • 支持Darwin的 open 命令

更改

  • 在导出时抑制列表输出
  • 在列表时添加使用的标签到列
  • 按键对YAML数据库条目进行排序(d2af42d2)

修复

  • 修复了arxiv解析器(7ce3726f)

0.2 - 2019-09-02

注意:这次发布没有标记为MAJOR,因为这仍然是一个WIP和早期alpha版本。

新增

  • 完全重写以使用纯文本 yaml 数据库而不是 sqlite3 !1

已删除

  • sqlite3 数据库

0.1 - 2019-04-29

新增

  • 初始版本,包含基于 sqlite3 的基本数据库

项目详情


下载文件

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

源分发

cobib-5.1.3.tar.gz (178.4 kB 查看哈希值)

上传时间

构建分发

cobib-5.1.3-py3-none-any.whl (173.1 kB 查看哈希值)

上传时间 Python 3

支持者:

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