7 个版本 (破坏性更新)
0.7.0 | 2021 年 9 月 21 日 |
---|---|
0.6.0 | 2020 年 8 月 12 日 |
0.5.0 | 2020 年 6 月 19 日 |
0.4.0 | 2020 年 5 月 27 日 |
0.1.0 | 2020 年 5 月 18 日 |
在 模板引擎 中排名第 274
每月下载量 35 次
51KB
549 行
此 crate 提供了一种将多个外部源中的变量注入模板字符串的方法。只要实现了处理变量加载的 Loader
trait,就可以使用任何来源。
功能
default
-["aws"]
aws
- 启用 AWS 值来源
来源
内置
以下是当前实现的来源及其关联的模板键
来源 | 键 | 功能 | 描述 |
---|---|---|---|
AWS EC2 实例标签 | awsec2tag |
aws |
通过键加载 AWS EC2 实例标签的值 |
AWS EC2 元数据服务 | awsec2metadata |
aws |
通过路径从 AWS EC2 元数据服务加载值 |
AWS SSM 参数 | awsssm |
aws |
通过名称从 AWS SSM 参数存储加载值。 限制 当在 EC2 实例上运行时,参数必须与实例位于同一区域 |
环境变量 | env |
- |
加载环境变量的值 |
示例
let mut seed = Seed::new("Hi %env:NAME%!");
let output = seed.germinate().await?;
assert_eq!("Hi John!", output);
自定义来源
您还可以使用 Seed::add_custom_loader
方法包含自己的来源。唯一的要求是自定义加载器必须实现 Loader
trait
示例
let mut seed = Seed::new("Hi %name:name%");
// Add a custom loader for the name key. This is the loader that will be used whenever
// germinate finds %name:...% in the template string
seed.add_custom_loader("name".to_string(), Box::new(NameLoader {}));
let output = seed.germinate().await?;
assert_eq!("Hi John", output);
二进制文件
Germinate 提供了一个用于模板文件的 CLI,可从 Github 发布版获取。要运行 CLI,只需下载适合您系统的二进制文件,并使用 germinate --help
检查用法即可。
示例
CLI 可以用于解析模板文件,并将其输出到 stdout
或可选的输出文件。
# To print the parsed result to stdout
germinate myfile.txt.tmpl
# To write the output to a file
germinate myfile.txt.tmpl -o myfile.txt
许可证
依赖项
~12–29MB
~450K SLoC