控制台文献
项目描述
coBib
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.undo
和cobib.commands.redo
)撤销和重新应用对数据库的更改
cobib undo
cobib redo
获取帮助
每个子命令都通过提供额外的帮助
cobib <subcommand> --help
,您可以在在线文档(如上所述)和手册页中找到大量信息
man cobib
文本用户界面
最后,您还可以使用coBib的TUI(文本用户界面)来获得更直观的体验(另请参阅cobib.ui.tui
),只需键入
cobib
以下是列出数据库条目的TUI的示例截图
以下是列出搜索结果的示例截图
配置
您可以通过在~/.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列表视图中修复了
Home
和End
快捷键的行为 (!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)
- 现在,
list
和search
命令分别支持以下功能以执行近似过滤匹配和搜索:- 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
设置为某个整数
- 使用命令行中的
- LaTeX序列可以解码为Unicode字符
- 现在,
- (开发)以下方法参数已转换为仅接受关键字参数
- 在
cobib.database.Entry.matches
中:ignore_case
- 在
cobib.database.Entry.search
中:context
、ignore_case
和skip_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/
新增
- 通过入口点添加自定义
commands
、importers
和parsers
的能力 (#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_helper
和cobib.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.console
和cobib.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
方法
- 在公共 API 中公开了
- 现在,
search
、export
和modify
命令也支持排序和限制选项,可以将这些选项传递给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
简写别名 OpenCommand
的opened_entries
属性(在PostOpenCommand
钩子期间可访问)- 新的
git
命令,简化在数据库上运行 git 操作(#124) - TUI 中
Home
、End
、PageUp
和PageDown
的新绑定 - (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
将重置任何应用的过滤器
- 可以通过TUI的
- 实现了特殊标签(#63,!83)
- 添加了新的内置标签,这些标签将触发条目的特殊高亮:
new
,high
,medium
,low
- 添加了新的
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
来禁用此提示
- 可以通过将
- 向
list
和search
命令添加了--no-ignore-case
(简写为-I
)命令行选项(#116) - 向
delete
,edit
和modify
命令添加了--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.commands
和cobib.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!
计划是将rich和textual切换到当前的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
- 此设置将在4.0.0版本中将默认值更改为
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_default
和config.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
参数。除非指定,否则这些命令将删除/重命名受影响条目的相关文件删除命令
编辑命令
修改命令
更改
- 修改命令
ModifyCommand
的modifications
被解释为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
字段不再需要,将根据标签正确推断- 以下字段可以存储为列表:
file
、tags
、url
- 添加了三个新的配置选项来补充上述列表格式选项
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
- (开发):将
logging
和zsh_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)- 有关如何迁移现有配置的指南,请参阅https://mrossinek.gitlab.io/programming/cobibs-new-configuration/
- (开发):将
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已经配置了name
和email
修复
- 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配置中至少设置一个
name
和email
!
- 对数据库的git历史记录进行撤销/重做操作(#59,!23)
- 出于明显的原因,这些命令需要启用Git集成(见上文)
- TUI内部的
Prompt
命令- 允许执行任意的CoBib CLI命令
- 默认键绑定是
:
Modify
命令:(#60,!24)- 允许以
<field>:<value>
格式批量修改多个条目 - 目前,这将
始终
用新值覆盖字段! - 计划在未来的版本中添加值的追加扩展
- 要修改的条目集可以像使用
export
命令一样通过list
-命令过滤器或手动选择(通过设置--selection
标志)来指定
- 允许以
更改
- 视口历史记录被正确保留(#21,!22)
- 这允许在显示条目的同时进行搜索,并在退出搜索后返回到正确的视图
- 更改主要涉及对
cobib/tui
模块的重构
modify
和search
命令的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_label
和add -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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cf542d86db56f65cef84d512f6db47c61b40e306801275f43116bf17e7890dce |
|
MD5 | 176d19cc2bba77e28e3262a83fcd57cf |
|
BLAKE2b-256 | 8d12e5a9023710fef4af08cd350da2d9f99b206d9e2e0141aba4eaef51366e68 |
cobib-5.1.3-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 777b59d8306e42b875d4151d6b961c92ecb326a73e5de71591c3ca8e658d62da |
|
MD5 | 8133cabff49a587657c2a386fd5e94f2 |
|
BLAKE2b-256 | de644d764289313b7379a56c291ce8cec3bb9dca10291815756f164ae47745be |