17个版本
0.9.3 | 2024年3月7日 |
---|---|
0.9.1 | 2023年11月29日 |
0.8.0 | 2023年4月4日 |
0.7.0 | 2023年3月27日 |
0.3.0 | 2020年9月13日 |
#205 在 解析器实现 中排名
5,028 每月下载量
在 34 个 包(6个直接)中使用
205KB
5K SLoC
BibLaTeX
BibLaTeX是一个用于解析和编写BibTeX和BibLaTeX文件的Rust包。
BibLaTeX可以帮助您解析.bib
参考文献文件。与其他可用的包不同,此包试图将字段内的数据解析成易于使用的结构体和枚举,如Person
和Date
,以便下游使用。
用法
将以下内容添加到您的Cargo.toml
[dependencies]
biblatex = "0.9"
解析参考文献并获取条目的作者,就像这样简单
let src = "@book{tolkien1937, author = {J. R. R. Tolkien}}";
let bibliography = Bibliography::parse(src).unwrap();
let entry = bibliography.get("tolkien1937").unwrap();
let author = entry.author().unwrap();
assert_eq!(author[0].name, "Tolkien");
此库在Bibliography
结构体上操作,这是一个条目的集合(您的.bib
文件中的项目,以@
开头并括在花括号内)。条目可以包含多个字段。条目为Bib(La)TeX文件中的每个可能字段提供getter方法,这些方法自动处理字段别名、组合和类型转换。
请参阅LaTeX参考文献管理WikiBook部分和BibLaTeX包手册,以了解每个字段的预期含义。
生成的文档更具体地描述了getter的选择和行为,但通常,它们遵循以下约定:对应字段的蛇形名称(例如,对于booktitleaddon
,getter命名为book_title_addon
)。
限制
此库试图为BibLaTeX规范提供相当全面的覆盖,其中大多数流通过的.bib
文件都可以处理。
然而,该包目前有一些限制
- 没有显式支持入口集合,尽管通过手动获取
entryset
字段并调用parse::<Vec<String>>()
来处理它们是很容易的
依赖项
~1–1.7MB
~60K SLoC