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 解析器实现
每月下载量 279次
在 5 crates 中使用
360KB
9K SLoC
cooklang-rs
Cooklang解析器,支持可选扩展
所有常规cooklang文件都解析为相同的菜谱,扩展是原始cooklang格式的超集。此外,可以关闭扩展,因此如果不喜欢它们,解析器也可以用于常规cooklang。
您可以在这里查看所有扩展的详细列表。
解析器还包括
- 带注释代码范围的丰富错误报告。 (例如这个)
- 单位转换。
- 菜谱缩放。
- Cooklang aisle配置文件的解析器。
lib.rs
:
带有可选扩展的cooklang解析器。
扩展创建了原始cooklang语言的超集,并且可以关闭。要查看详细列表,请访问扩展。
还包括
- 带注释代码范围的丰富错误报告。
- 单位转换。
- 菜谱缩放。
- Cooklang aisle配置文件的解析器。
基本用法
如果您只想解析单个 cooklang
文件,请参阅 parse
。
如果您要解析多个文件或想要更改解析器的配置,请自己构建解析器实例。
要构建解析器,请使用 CooklangParser::new
或 CooklangParser::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");
食谱可以缩放和转换。但以下适用
-
解析返回一个
ScalableRecipe
。 -
只有
ScalableRecipe
可以进行scaled
或default_scaled
一次 来获得一个ScaledRecipe
。 -
只有
ScaledRecipe
可以进行converted
。此库有两个功能,默认都启用 -
bundled_units
。包含一个包含英文食谱中最常用单位的单位文件。当您想要加载这些单位时,不需要读取文件。默认的Converter
如果启用了此功能,将使用它们。这是捆绑文件 -
aisle
。启用aisle
模块。
依赖项
~8–11MB
~259K SLoC