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 模板引擎

Download history 448598/week @ 2024-03-14 472051/week @ 2024-03-21 471051/week @ 2024-03-28 483445/week @ 2024-04-04 496418/week @ 2024-04-11 504716/week @ 2024-04-18 498924/week @ 2024-04-25 518846/week @ 2024-05-02 498982/week @ 2024-05-09 537010/week @ 2024-05-16 537558/week @ 2024-05-23 633464/week @ 2024-05-30 626612/week @ 2024-06-06 634323/week @ 2024-06-13 641387/week @ 2024-06-20 555948/week @ 2024-06-27

2,586,402 每月下载量
5,067 个crates(73个直接) 中使用

Apache-2.0 OR MIT

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