2 个不稳定版本

0.2.0 2023年6月25日
0.1.1 2021年11月18日

#16 in #front-matter


用于 polysite

MIT 许可协议

12KB
256

fronma

test

为 Rust 编写的 前端元数据 解析器。

用法

将此包作为依赖项添加

[dependencies]
fronma = "~0.1"

然后使用 fronma::parser::parse 来解析具有 YAML 前端元数据的文本

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");
}

其他格式

此库支持以下前端元数据格式

  • YAML(由 default 功能支持)
  • TOML(需要 toml 功能)
  • JSON(需要 json 功能)

例如,当您想使用 TOML 格式时,添加此包并使用 toml 功能

[dependencies]
fronma = { version = "~0.1", features = ["toml"] }

然后使用 fronma::parser::parse_with_engine 如此

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");
}

依赖项

~2MB
~41K SLoC