8个稳定版本
使用旧的Rust 2015
1.2.1 | 2021年3月4日 |
---|---|
1.2.0 | 2021年1月3日 |
1.1.0 | 2020年5月31日 |
1.0.4 | 2020年4月25日 |
1.0.1 | 2019年1月19日 |
#11 in 模板引擎
2,586,402 每月下载量
在 5,067 个crates(73个直接) 中使用
93KB
2K SLoC
TinyTemplate
TinyTemplate是一个小型、极简的文本模板系统,具有有限的依赖。
目录
目标
主要设计目标是
- 小型:TinyTemplate故意不支持更强大模板引擎的许多功能。
- 简单:TinyTemplate提供了一个最小但文档齐全的用户API。
- 轻量级:TinyTemplate具有最少的必需依赖。
不包括的目标
- 可扩展性:TinyTemplate支持自定义值格式化程序,但仅此而已。
- 性能:TinyTemplate提供了不错的性能,但其他模板引擎可能更快。
为什么选择TinyTemplate?
我在注意到现有的模板库没有一个真正适合我为Criterion.rs的需求后创建了TinyTemplate。有些有庞大的依赖树来支持我不需要的功能。有些需要添加构建脚本以在运行时将模板转换为代码,以寻求我不需要的高性能。有些有基于宏的复杂DSL来生成HTML,而我只想得到一些带标记的纯文本。有些期望模板以文本文件的目录形式提供,但我想将模板包含在二进制文件中。我只是想要一个小巧且具有良好文档的,但市场上没有这样的东西,所以我写了自己的。
TinyTemplate非常适合生成HTML报告和类似的文本文件。它可用于在Web服务器中生成HTML或其他文本,但对于更复杂的用例,另一个模板引擎可能更合适。
快速入门
首先,将TinyTemplate和serde-derive添加到您的Cargo.toml
文件中
[dependencies]
tinytemplate = "1.1"
serde = { version = "1.0", features = ["derive"] }
然后将此代码添加到"src.rs"中
use serde::Serialize;
use tinytemplate::TinyTemplate;
use std::error::Error;
#[derive(Serialize)]
struct Context {
name: String,
}
static TEMPLATE : &'static str = "Hello {name}!";
pub fn main() -> Result<(), Box<dyn Error>> {
let mut tt = TinyTemplate::new();
tt.add_template("hello", TEMPLATE)?;
let context = Context {
name: "World".to_string(),
};
let rendered = tt.render("hello", &context)?;
println!("{}", rendered);
Ok(())
}
这将打印"Hello World!"到标准输出。
兼容性策略
TinyTemplate支持Rust的过去三个稳定的小版本。截至撰写本文时,这意味着Rust 1.38或更高版本。较旧版本可能可以工作,但未经测试或保证。
目前,认为可以运行的Rust最老版本是1.36。TinyTemplate的后续版本可能不支持这些旧版本,这不会被视为重大变更。如果您需要TinyTemplate在旧版本的Rust上运行,您需要坚持使用TinyTemplate的一个特定补丁版本。
贡献
感谢您的兴趣!欢迎贡献。
问题、功能请求、疑问和错误报告应通过上述问题跟踪器报告。特别是,由于TinyTemplate旨在具有良好的文档,请报告任何您觉得混乱或不正确的内容。
以拉取请求的形式提交的代码或文档改进也是受欢迎的。但在大量工作之前,请提交或评论一个问题以进行讨论。
有关更多详细信息,请参阅CONTRIBUTING.md文件。
维护
TinyTemplate由Brook Heisler (@bheisler) 创建并维护。
许可证
TinyTemplate同时受Apache 2.0许可证和MIT许可证的约束。
依赖关系
~355–760KB
~17K SLoC