13 个版本

0.1.12 2024 年 5 月 23 日
0.1.11 2024 年 5 月 22 日
0.1.6 2024 年 4 月 19 日
0.1.4 2024 年 3 月 16 日
0.1.2 2024 年 2 月 21 日

#126模板引擎

Download history 209/week @ 2024-04-13 47/week @ 2024-04-20 2/week @ 2024-04-27 551/week @ 2024-05-11 270/week @ 2024-05-18 43/week @ 2024-05-25 5/week @ 2024-06-01 3/week @ 2024-06-08 10/week @ 2024-06-29 57/week @ 2024-07-27

每月 66 次下载
用于 llmclient

MIT/Apache

29KB
536

另一个模板引擎

受 %nix shell 以及几年前 Java 版本的启发,并受到其他 Rust 模板引擎的一些代码影响。

功能

  1. 默认分隔符为 "${" 和 "}". 可以覆盖为任何内容。
  2. 使用 :- 语法提供默认值。
  3. 允许变量嵌套(至 16 级)。
  4. 可以使用环境变量。
  5. 值查找顺序:提供的 HashMap、环境、默认值(如果提供)。
  6. 与 serde HashMaps 顺利配合。
  7. 可以包含文件(可以嵌套)。仅支持 .inc 扩展名。
  8. 无依赖。
  9. 速度快。
  10. 可以使用多值变量(仅通过 HashMap)用于列表等。
  11. 可以检查值的存在,如果存在则提供默认值。在 HTML 表单中变量具有特定值且此值应为默认选中值时很有用。
  12. 提供值列表,以 '#' 分隔,并实例化多个变量实例(在同一递归深度),使用连续的值。
  13. 字面扩展,不递归解析内容。对于嵌入式代码或示例很有用。

使用默认分隔符的普通变量将是:${variable_name},将在提供的 HashMap 中查找。如果未在 HashMap 中找到,则将查询环境。如果在任何地方都找不到值,则可以使用默认值(如果提供)。默认值由 ":-" 或 ":=" 指示。所以 ${variable_name:=default value} 将在输出中添加 "default value"。

变量的内容通常将递归检查进一步的嵌套变量,最多 16 级。默认情况下,值将删除前导和尾随空白。

变量名前面可能有一个修饰符。修饰符包括:'=' - 不递归检查变量的内容以进行进一步展开或删除空格。'*' - 引用的嵌入式变量提供多个值,值之间由 '|' 分隔。参见测试案例。'!' - 提供一个外部文件(必须以 .inc 结尾)并将其包含。进一步的递归展开按常规进行。'?' - 条件,如果变量有值则使用默认值(例如,在 HTML 中的下拉列表中很有用,以指示选中项)'#' - 简单的多个值,再次由 '|' 分隔,参见测试案例。

请参阅 API 文档 和测试案例。[链接](https://docs.rs/stemplate/)

没有运行时依赖。