4 个版本 (2 个稳定)

1.1.4 2022年7月16日
1.1.3 2022年3月3日
0.1.2 2022年3月2日
0.1.0 2022年3月2日

#complexity 中排名 21

Download history 113/week @ 2024-03-16 9/week @ 2024-03-23 40/week @ 2024-03-30 3/week @ 2024-04-06 7/week @ 2024-04-20 4/week @ 2024-04-27 34/week @ 2024-05-04 163/week @ 2024-05-11 60/week @ 2024-05-18 143/week @ 2024-05-25 238/week @ 2024-06-01 160/week @ 2024-06-08 153/week @ 2024-06-15 119/week @ 2024-06-22 1/week @ 2024-06-29

每月下载 463
用于 sssg

GPL-2.0-only

15KB
171

Placeholder

无复杂性的占位符模板引擎

你可能熟悉 printf!()format!() 和类似函数如何使用 {<named>} 占位符。此模块在其模板中使用相同的样式,以便在完整的文本模板引擎中使用。

示例 1

use placeholder::render;
use std::collections::HashMap;

fn main() {
  let template = String::from("<h1>{greet} {name}</h1><p>Do you like {food}?</p>");

  let mut values = HashMap::new();
  values.insert(String::from("greet"), String::from("Hello"));
  values.insert(String::from("name"), String::from("Homer"));
  values.insert(String::from("food"), String::from("Donuts"));

  assert!(render(&template, &values)
    == Ok(String::from("<h1>Hello Homer</h1><p>Do you like Donuts?</p>")));

}

示例 2(缺少占位符值)

use placeholder::render;
use std::collections::HashMap;

fn main() {
  let template = String::from("<h1>{greet} {name}</h1>");

  let mut values = HashMap::new();
  values.insert(String::from("greet"), String::from("Hello"));

  assert!(render(&template, &values)
    == Err(String::from("name")));
}

支持

请在以下位置报告任何错误或功能请求:

请随意分叉仓库并提交拉取请求 :)

作者

Alfie John <[email protected]>

保修

没有任何类型的保修。

版权和许可

版权 (C) 2022 由 Alfie John

本程序是免费软件:您可以在自由软件基金会发布的 GNU 通用公共许可证和 GNU 自由文档许可证的条款下重新分发和/或修改它,无论是 GPL 的第 3 版或 GFDL 的第 1.3 版,还是(根据您的选择)任何更新的版本。

本程序的分发是希望它将是有用的,但没有任何保证;甚至没有关于其可销售性或适用于特定用途的隐含保证。有关详细信息,请参阅 GNU 通用公共许可证。

您应该已经收到 GNU 通用公共许可证的副本。如果没有,请参阅 https://www.gnu.org/licenses/

依赖项

~2.2–3MB
~54K SLoC