10个稳定版本
1.5.3 | 2024年8月2日 |
---|---|
1.5.1 | 2024年4月6日 |
1.4.0 | 2022年8月30日 |
1.3.1 | 2022年5月26日 |
1.0.0 | 2021年5月28日 |
#22 在 模板引擎 中
36,667 每月下载量
用于 3 crates
29KB
356 行
新字符串模板
Rust的简单可定制字符串模板库。
本库受 string_template
启发。
用法
将以下内容添加到您的 Cargo.toml
(或使用 cargo-add
)
[dependencies]
new_string_template = "1.5"
包含2个数据点的示例(启用fail)
use new_string_template::template::Template;
use std::collections::HashMap;
fn main() {
let templ_str = "Something {data1} be {data2}, and { not here }";
let templ = Template::new(templ_str);
let data = {
let mut map = HashMap::new();
map.insert("data1", "should");
map.insert("data2", "here");
map
};
let rendered = templ.render(&data).expect("Expected Result to be Ok");
assert_eq!("Something should be here, and { not here }", rendered);
}
包含1个数据点的示例(禁用fail)
use new_string_template::template::Template;
use std::collections::HashMap;
fn main() {
let templ_str = "Something {data1} be {data2}, and { not here }";
let templ = Template::new(templ_str);
let data = {
let mut map = HashMap::new();
map.insert("data1", "should");
// map.insert("data2", "here");
map
};
let rendered = templ.render_nofail(&data);
assert_eq!("Something should be {data2}, and { not here }", rendered);
}
包含自定义正则表达式的示例
use new_string_template::template::Template;
use std::collections::HashMap;
use regex::Regex;
fn main() {
// The following regex requires at least one space between "{{" and "}}" and allows variables with spaces
let custom_regex = Regex::new(r"(?mi)\{\{\s+([^\}]+)\s+\}\}").unwrap();
let templ_str = "Something {{ data1 }} be {{ data2 }}, and {{ data 3 }}";
let templ = Template::new(templ_str).with_regex(&custom_regex);
let data = {
let mut map = HashMap::new();
map.insert("data1", "should");
map.insert("data2", "here");
map.insert("data 3", "here too");
map
};
let rendered = templ.render_nofail(&data);
assert_eq!("Something should be here, and here too", rendered);
}
注意:使用默认正则表达式时,模板变量可以有空白或没有。
本项目正在开发中
本项目需要
依赖项
~2–3MB
~53K SLoC