2 unstable releases
0.2.0 | Jun 25, 2023 |
---|---|
0.1.1 | Nov 18, 2021 |
#2638 in Parser implementations
145 downloads per month
Used in 2 crates
12KB
256 lines
fronma
Front Matter parser for Rust.
Usage
Add this crate as a dependency:
[dependencies]
fronma = "~0.1"
then use fronma::parser::parse
to parse text that has YAML Front Matter:
use fronma::parser::parse;
use serde::Deserialize;
#[derive(Deserialize)]
struct Headers {
title: String,
}
fn main() {
let text = r#"---
title: A
---
B
"#;
let data = parse::<Headers>(text).unwrap();
assert_eq!(data.headers.title, "A");
assert_eq!(data.body, "B\n");
}
Other formats
This library supports the following Front Matter formats:
- YAML (supported by
default
feature) - TOML (requires
toml
feature) - JSON (requires
json
feature)
For example, when you want to use TOML format, add this crate with toml feature:
[dependencies]
fronma = { version = "~0.1", features = ["toml"] }
then use fronma::parser::parse_with_engine
like this:
use fronma::engines::Toml;
use fronma::parser::parse_with_engine;
use serde::Deserialize;
#[derive(Deserialize)]
struct Headers {
title: String,
}
fn main() {
let text = r#"---
title = "dummy_title"
---
dummy_body
"#;
let result = parse_with_engine::<Headers, Toml>(text).unwrap();
assert_eq!(result.headers.title, "dummy_title");
assert_eq!(result.body, "dummy_body\n");
}
Dependencies
~1.6–2MB
~42K SLoC