Sanitize Citation Style Language (CSL) files for hayagriva.
将 Citation Style Language (CSL) 样式处理成 hayagriva 可用的文件。
- 删除 hayagriva 尚不支持的特性
- 替换非标准语法为等价或近似内容
- 尽量避免多余更改以保持清晰易懂
针对的 hayagriva 版本:2025-09-27 v0.9.1(下载),对应 typst v0.14.0。
使用方法:查看 CSL 文件列表,或安装浏览器用户脚本在 Zotero 中文社区 CSL 样式页面搜索查看。
由于实现方式纷繁复杂,许多 CSL 样式超出了 CSL 规范,有些甚至还超出了 CSL-M 扩展。在 300+ 中文 CSL 样式中,约 74% 会被 hayagriva(Typst 所用实现)判为 malformed,但它们都能被 citeproc-js(Zotero 所用实现)接受。
然而很不幸,hayagriva 提供的错误信息一般并不清晰,导致调试异常困难。即使您理解 hayagriva 报了什么错,通常也需删除各个<macro>并反复重新编译,一番二分法后,才能定位问题。
- Failed to load CSL style (duplicate field
layout)- Failed to load CSL style (data did not match any variant of untagged enum Term)
- …
本项目希望能免除这些繁重工作,让 CSL 样式能被 hayagriva 接受。
不过请注意,这并不保证能完全正确地著录参考文献——Typst 在中文支持方面还有不小差距,必要时请结合其它方案使用。