30 个稳定版本

1.1.26 2019年3月5日
1.1.24 2019年3月4日
1.1.10 2019年2月18日
0.1.2 2019年2月2日

1681文本处理

Download history 2/week @ 2024-06-10 172/week @ 2024-07-22

172 每月下载量
用于 rust_ssg

MIT 许可证

20KB
411 代码行

GEML

GEML(GEnerator Markdown Language)是一个简单的以字符串为导向的 ml 解析器,使用正则表达式编写,旨在与使用 HTML 模板的静态网站生成器一起使用。每个条目都由一个标题(序列化时被 $ 包围)组成,一个标签映射(类似于 Rust 属性指定),以及文本本身。GemlFile 是这些条目和一些元数据的向量。因此,它可以编译成 HTML,并拥有自己的(有些有限)Markdown 解析器。

用法

要反序列化 GEML 文件,您可以使用 GemlFile::from_stringfrom_path 函数:(注意,如果您从字符串读取,则需要指定根路径)

let geml = String::from("
$test1$
#[markdown(enabled)]
Note that markdown is enabled by default.
*markdown*, cool.
");
let deserialized = GemlFile::from_string(geml, Path::new("root/dir/")).unwrap();

您还可以使用 Geml::deserialize 将原始 GEML 向量序列化

let geml = String::from("
$test1$
#[markdown(enabled)]
Note that markdown is enabled by default.
*markdown*, cool.
");
let deserialized = Geml:deserialize(geml).unwrap();

GEML 的主要思想是 SSG 在 HTML 模板中查找 GEML 风格的标题,然后用相应的 GEML 的值替换它们。

所以模板

<html>
<body>
$test1$
</body>
</html>

将变成

<html>
<body>

Note that markdown is enabled by default.
<em>markdown</em>, cool.

</body>
</html>

测试,请忽略

依赖项

~2-3MB
~53K SLoC