22个版本 (12个重大更新)

0.13.3 2024年8月12日
0.13.2 2024年4月6日
0.13.1 2024年2月10日
0.11.1 2023年12月28日
0.5.1 2023年7月24日

#657 in 解析器实现

Download history 17/week @ 2024-04-29 13/week @ 2024-05-06 8/week @ 2024-05-13 25/week @ 2024-05-20 13/week @ 2024-05-27 24/week @ 2024-06-03 31/week @ 2024-06-10 10/week @ 2024-06-17 19/week @ 2024-06-24 2/week @ 2024-07-08 21/week @ 2024-07-15 115/week @ 2024-07-22 17/week @ 2024-07-29 17/week @ 2024-08-05 127/week @ 2024-08-12

每月下载量 279次
5 crates 中使用

MIT 许可协议

360KB
9K SLoC

cooklang-rs

crates.io docs.rs license

Cooklang解析器,支持可选扩展

所有常规cooklang文件都解析为相同的菜谱,扩展是原始cooklang格式的超集。此外,可以关闭扩展,因此如果不喜欢它们,解析器也可以用于常规cooklang。

您可以在这里查看所有扩展的详细列表。

解析器还包括

  • 带注释代码范围的丰富错误报告。 (例如这个)
  • 单位转换。
  • 菜谱缩放。
  • Cooklang aisle配置文件的解析器。

lib.rs:

带有可选扩展的cooklang解析器。

扩展创建了原始cooklang语言的超集,并且可以关闭。要查看详细列表,请访问扩展

还包括

  • 带注释代码范围的丰富错误报告。
  • 单位转换。
  • 菜谱缩放。
  • Cooklang aisle配置文件的解析器。

基本用法

如果您只想解析单个 cooklang 文件,请参阅 parse

如果您要解析多个文件或想要更改解析器的配置,请自己构建解析器实例。

要构建解析器,请使用 CooklangParser::newCooklangParser::default 来配置解析器。您可以配置启用的 Extensions 和用于转换和检查单位的 Converter

// Create a parser
// (this is the default configuration)
let parser = CooklangParser::new(Extensions::all(), Converter::default());

然后使用解析器

let (recipe, _warnings) = parser.parse("This is an @example").into_result()?;
assert_eq!(recipe.ingredients.len(), 1);
assert_eq!(recipe.ingredients[0].name, "example");

食谱可以缩放和转换。但以下适用

依赖项

~8–11MB
~259K SLoC