6 releases (3 breaking)
0.4.0 | Oct 2, 2024 |
---|---|
0.3.1 | May 16, 2024 |
0.3.0 | Mar 6, 2024 |
0.2.0 | Mar 6, 2024 |
0.1.0 | Oct 31, 2023 |
#1168 in Parser implementations
9,241 downloads per month
Used in 41 crates
(via hayagriva)
205KB
4.5K
SLoC
Citationberg
A library for parsing CSL styles.
[dependencies]
citationberg = "0.4"
Citationberg deserializes CSL styles from XML into Rust structs. It supports CSL 1.0.2.
This crate is not a CSL processor, so you are free to choose whatever data model and data types you need for your bibliographic needs. If you need to render citations, you can use Hayagriva which uses this crate under the hood.
Parse your style like this:
use std::fs;
use citationberg::Style;
let string = fs::read_to_string("tests/independent/ieee.csl")?;
let style = citationberg::Style::from_xml(&string)?;
let Style::Independent(independent) = style else {
panic!("IEEE is an independent style");
};
assert_eq!(independent.info.title.value, "IEEE");
Be sure to check out the CSL
styles and
locales repositories into
sibling folders of citationberg
if you want to run the tests.
Safety
This crate forbids unsafe code.
License
This crate is dual-licensed under the MIT and Apache 2.0 licenses.
Dependencies
~1.5–2.3MB
~43K SLoC