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 在 文本处理 中
172 每月下载量
用于 rust_ssg
20KB
411 代码行
GEML
GEML(GEnerator Markdown Language)是一个简单的以字符串为导向的 ml 解析器,使用正则表达式编写,旨在与使用 HTML 模板的静态网站生成器一起使用。每个条目都由一个标题(序列化时被 $
包围)组成,一个标签映射(类似于 Rust 属性指定),以及文本本身。GemlFile 是这些条目和一些元数据的向量。因此,它可以编译成 HTML,并拥有自己的(有些有限)Markdown 解析器。
用法
要反序列化 GEML 文件,您可以使用 GemlFile::from_string
或 from_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