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

GPL-3.0 许可证

51KB
549

germinate

Crates.io docs.rs GitHub Workflow Status (branch) Crates.io

此 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

许可证

GPL-3.0

依赖项

~12–29MB
~450K SLoC