4个稳定版本

使用旧Rust 2015

1.1.2 2024年2月8日
1.0.1 2024年1月27日

60模板引擎 中排名

Download history 167/week @ 2024-04-20 261/week @ 2024-04-27 188/week @ 2024-05-04 122/week @ 2024-05-11 262/week @ 2024-05-18 181/week @ 2024-05-25 423/week @ 2024-06-01 157/week @ 2024-06-08 120/week @ 2024-06-15 116/week @ 2024-06-22 157/week @ 2024-06-29 155/week @ 2024-07-06 231/week @ 2024-07-13 278/week @ 2024-07-20 312/week @ 2024-07-27 169/week @ 2024-08-03

1,030 每月下载量

Apache-2.0 OR MIT

100KB
2K SLoC

TinyTemplate

最小化轻量级文本模板

TinyTemplate是一个小型、极简的文本模板系统,依赖性有限。

目录

目标

主要设计目标是

  • 小型:TinyTemplate故意不支持更强大模板引擎的许多功能。
  • 简单:TinyTemplate提供了一个最小但文档良好的用户API。
  • 轻量级:TinyTemplate的依赖性最小。

不包括的目标有

  • 可扩展性:TinyTemplate支持自定义值格式化器,但仅此而已。
  • 性能:TinyTemplate提供了相当的性能,但其他模板引擎可能更快。

为什么是TinyTemplate?

我创建TinyTemplate是因为注意到现有的模板库中没有哪一个真正适合我的Criterion.rs需求。一些有大型依赖树来支持我未使用的功能。一些需要添加构建脚本在运行时将模板转换为代码,以追求我不需要的高性能。一些有基于宏的复杂DSL来生成HTML,而我只是想要带有一些标记的纯文本。一些期望模板以文本文件目录的形式提供,但我希望模板包含在二进制文件中。我只是想要一个小型、极简的且具有良好文档的库,但市面上没有这样的东西,所以我写了自己的。

TinyTemplate非常适合生成HTML报告和类似的文本文件。它可以在Web服务器中用于生成HTML或其他文本,但对于更复杂的用例,另一个模板引擎可能更适合。

快速入门

首先,将TinyTemplate和serde-derive添加到你的Cargo.toml文件中

[dependencies]
tinytemplate-async = "1.0"
serde = { version = "1.0", features = ["derive"] }

然后,将以下代码添加到"src.rs"中

use serde::Serialize;

use tinytemplate_async::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".to_string(), TEMPLATE.to_string())?;

    let context = Context {
        name: "World".to_string(),
    };

    let rendered = tt.render("hello".to_string(), &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许可的双重许可。

依赖项

~0.5–1.1MB
~22K SLoC