#plain #template-engine #template-string

text-template

用于纯文本(例如创建文本电子邮件)的小型模板引擎,不适用于 HTML。

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2018 年 9 月 5 日

#18#template-string

31 每月下载量

MIT-0 许可证

13KB
216

Rust 简单文本模板引擎

该库实现了带有命名占位符元素的文本模板,例如 Hello ${title }${name}。标题后的空格在意义上很重要,因为它仅在标题不为空时才包含在输出中。这是为了防止例如如果一个人没有标题时出现两个连续的空格。

请参阅 https://docs.rs/crate/text-template 以获取 API 文档。

示例

use text_template::*;
use std::collections::HashMap;
 
let template = Template::from("Hello ${title }${name}");
 
let mut values = HashMap::new();
values.insert("name", "Jane");
 
let text = template.fill_in(&values);

assert_eq!(text.to_string(), "Hello Jane");
assert_eq!(template.to_string(), "Hello ${title }${name}");

lib.rs:

一个最小的文本模板引擎

概述

该库实现了由文本和命名占位符组成的模板。占位符是特殊的字符序列:它们的名称被 ${} 包围。示例模板 Hello␣${name} 由文本 Hello␣ 和占位符 name 组成。

占位符元素内部的后缀和前缀空格是重要的,并且如果要插入的占位符值不为空,则条件性地包含在输出中。例如 ${title␣}${name} 可能会评估为 Dr.␣XY,而 ${title}${name} 可能会评估为 Dr.␣X␣Y

模板由结构体 Template 表示。可以使用 From<&str> 来从字符串构造模板。模板可以通过使用 fill_intry_fill_in 进行填充,这些方法会将模板中的任何占位符替换为提供的值。返回的 Text 结构体简单是对 Vec<&str> 的包装,并对其进行解引用。

可以通过使用 to_string 获取模板及其填充结果的文本表示。

此库仅存储给定模板字符串的引用。在解析模板字符串时,它会分配一个 Vec 来存储文本和占位符元素列表。一旦创建,模板可以多次使用来填充不同的值集。

示例

 use text_template::*;
 use std::collections::HashMap;

 let template = Template::from("Hello ${title }${name}");

 let mut values = HashMap::new();
 values.insert("name", "Jane");

 let text = template.fill_in(&values);

 assert_eq!(text.to_string(), "Hello Jane");
 assert_eq!(template.to_string(), "Hello ${title }${name}");

无运行时依赖