Hayagriva YAML文献格式详解:用parent层级告别字段爆炸的简单方法
【免费下载链接】hayagrivaRusty bibliography management.项目地址: https://gitcode.com/gh_mirrors/ha/hayagriva
Hayagriva 是一款用 Rust 编写的开源文献管理工具,其核心的YAML文献格式用一套parent(父级)层级取代了传统格式的成堆字段:论文、期刊、会议、视频之间的从属关系,只需复用同一批字段就能完整表达,从根源上解决了 BibTeX、RIS 等格式的"字段爆炸"难题。本文带你快速上手这种简单直观的文献库写法。
🎯 30秒上手:一个文献文件长什么样
Hayagriva 的文献文件本质上是一份 YAML 文档:每条文献用一个键名(key)标识,下面缩进列出它的字段(fields)。
harry: type: Book title: Harry Potter and the Order of the Phoenix author: Rowling, J. K. volume: 5 page-total: 768 date: 2003-06-21三个要点,新手只要记住这些就不会写错:
- 键名永远在最前,后跟冒号,用来在引用时唯一定位这条文献;
- 字段值通常就是冒号后的文本,比如
author: Rowling, J. K.; - 列表有两种等价写法:紧凑的方括号数组
author: ["Omarova, Saule", "Steele, Graham"],或每个作者一行、行首带-的项目符号形式。
完整格式说明在 docs/file-format.md,其中还收录了所有字段与数据类型的全量参考。
💥 为什么需要 parent:告别"字段爆炸"
传统文献格式(BibTeX、RIS)的思路是:每一种信息都配一个专属字段。想记录论文发表的期刊,用journaltitle;收录在书里,用booktitle;会议论文集又是另一个字段……几十种字段各自为政,写作时只能靠翻文档记忆。
Hayagriva 反其道而行:把字段数量压到最小,让格式好记到可以脱稿手写。它的方案是——许多文献本来就"发布"在别的载体里(论文之于期刊、章节之于书、演讲之于会议),与其为每种载体造新字段,不如用parent字段把包含关系表达出来。每一层级(顶层条目和所有父级)都可用同一批字段,title、author、volume在各层含义一致,写起来零心智负担。
📚 写法一:单父级——给论文"挂上"期刊
一篇期刊论文的典型写法如下(完整示例见 tests/data/basic.yml 中的kinetics条目):
kinetics: type: Article title: Kinetics and luminescence of the excitations ... serial-number: doi: "10.1103/PhysRevB.102.165126" page-range: 165126-165139 date: 2020-10-14 parent: type: Periodical title: Physical Review B volume: 102 issue: 16 publisher: American Physical Society含义一目了然:这篇文章发表于《Physical Review B》第 102 卷第 16 期。注意title字段同时用于文章本身和它的父级——这正是"字段不膨胀"的关键。
还有一个贴心细节:type: Periodical这行其实可以省略。每种条目类型都定义了"默认父级类型",例如Article的默认父级就是期刊,省掉了大量样板代码。
🔀 写法二:多父级——一份内容,多种发布方式
有些媒体是"多重发布"的:一篇会议演讲,既有会议记录,又有官方录像。这时把parent写成列表即可:
wwdc-network: type: Article author: ["Mehta, Jiten", "Kinnear, Eric"] title: Boost Performance and Security with Modern Networking date: 2020-06-26 parent: - type: Conference title: World Wide Developer Conference 2020 organization: Apple Inc. - type: Video runtime: "00:13:42" url: https://developer.apple.com/videos/play/wwdc2020/10111/与author列表的规则完全一样:出现-即表示一个新的父级。引用时到底依据哪个来源,读者心里有数。
🪆 写法三:嵌套父级——层层向上追溯源
父级条目自己还可以拥有父级。比如一块博物馆信息牌,描述一张照片,而这张照片属于一个收藏系列:
plaque: type: Misc title: Informational plaque about Jacoby's 1967 photos date: 2020 parent: type: Artwork date: 1967 author: Jacoby, Max parent: type: Anthology title: Bleibtreustraße archive: Landesmuseum Koblenz信息牌 → 艺术作品 → 收藏系列,三层关系靠同一个parent字段递归表达,不需要任何新字段。这正是该 YAML文献格式 处理复杂文献学关系最优雅的地方。
✅ 新手实用小贴士
| 问题 | 答案 |
|---|---|
| 条目类型有哪些? | 内置约 29 种:article、book、web、conference、video、thesis、case等,区分大小写不敏感,省略时默认Misc |
| URL 想附带"访问日期"怎么办? | 用复合写法url: { value: ..., date: 2020-11-30 } |
| 期刊名总被改大小写? | 加verbatim: true保留原样 |
| 有 DOI / ISBN / arXiv 号? | 放进serial-number字典,Hayagriva 会识别并特殊处理 |
| 想按类型筛选文献? | 用内置选择器语言,见 docs/selectors.md |
写好文献文件后,一行命令即可生成参考文献列表(默认芝加哥 Author-Date 风格):
hayagriva literature.yaml reference📁 相关文件索引
- 格式官方文档(字段与数据类型全量参考):docs/file-format.md
- 覆盖各种用法的示例文献库:tests/data/basic.yml
- 选择器(按结构与元数据查询文献):docs/selectors.md
- 项目介绍、安装与 CLI 用法:README.md
- 版本变更历史:CHANGELOG.md
一句话总结:学 Hayagriva 的 YAML文献格式,核心就是记住"parent能套parent、各层字段通用"这一条——字段少、好记忆、结构清晰,文献库从此告别字段爆炸。
【免费下载链接】hayagrivaRusty bibliography management.项目地址: https://gitcode.com/gh_mirrors/ha/hayagriva
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考