1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2018 年 9 月 5 日 |
---|
#18 在 #template-string
31 每月下载量
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.␣X
或 Y
,而 ${title}␣${name}
可能会评估为 Dr.␣X
或 ␣Y
。
模板由结构体 Template
表示。可以使用 From<&str>
来从字符串构造模板。模板可以通过使用 fill_in
或 try_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}");