11 个版本
| 0.3.0 | 2024年7月29日 |
|---|---|
| 0.2.1 | 2024年2月1日 |
| 0.1.6 | 2024年7月29日 |
| 0.1.3 | 2023年12月30日 |
| 0.1.2 | 2023年10月6日 |
#108 在 模板引擎
每月下载量 416
用于 ctgen
24KB
269 行
handlebars-concat
handlebars-rust 的字符串、数组和对象连接助手 handlebars-rust
快速入门
与 handlebars-rust v4.4.0 开发和测试。
版本 0.1.* 与 handlebars 4 兼容。
版本 0.2.* 与 handlebars 5 兼容。 (感谢 campeis) 版本 0.3.* 与 handlebars 6 兼容。
注册
use handlebars::Handlebars;
use handlebars_concat::HandlebarsConcat;
let mut h = Handlebars::new();
h.register_helper("concat", Box::new(HandlebarsConcat));
行为
该助手寻找多个字符串、数组或对象类型的参数。参数被添加到输出缓冲区并作为字符串返回。
该助手有一些参数可以稍微修改其行为。例如,distinct=true 从输出缓冲区中删除重复值,而 quotes=true 结合 single_quote=true 将值用引号括起来。更多信息请见 参数。
字符串
字符串参数直接添加到输出缓冲区。
从 0.1.3 版本开始,字符串可以以两种方式处理
- 默认情况下,字符串会添加到输出缓冲区而不会修改(除了引号修饰符)。
- 如果您添加了一个块模板并使用
render_all参数,字符串将作为{{this}}传递给块模板。
默认情况下禁用块模板渲染以保持向后兼容。
数组
数组参数会被迭代,并作为单个字符串添加到输出缓冲区。
截至 0.1.3 数组可以以两种方式之一进行处理
- 默认情况下,数组值作为单独的字符串添加到输出缓冲区,不进行修改(除了引号修饰符)。
- 如果您添加了一个块模板并使用了
render_all参数,数组值将以{{this}}的形式传递到块模板。
默认情况下禁用块模板渲染以保持向后兼容。
对象
对象参数可以以两种不同的方式处理
- 默认情况下,只使用对象键,而值被忽略。
- 如果您添加了一个块模板,辅助工具将使用它来渲染对象值并将
将其作为字符串连接到输出缓冲区。
对象渲染结果受 distinct、quotes 和 single_quote 修饰符参数的影响,就像字符串和数组一样。
参数
辅助工具接受几个哈希参数来修改连接行为
separator:设置特定字符串以连接元素。默认为 ","distinct:在添加到输出缓冲区时消除重复项quotes:将每个值用双引号包裹single_quote:quotes的修饰符,用于切换到单引号render_all:使用块模板渲染所有值,而不仅仅是对象值
示例
字符串字面量示例
{{concat "One" "Two" separator=", "}}
结果:One, Two
{{concat "One" "Two" separator=", " quotes=true}}
结果:"One", "Two"
其中 s 是 "One",arr 是 ["One", "Two"],而 obj 是 {"Three":3}
{{concat s arr obj separator=", " distinct=true}}
结果:One, Two, Three
其中 s 是 "One",arr 是 ["One", "Two"],而 obj 是 {"key0":{"label":"Two"},"key1":{"label":"Three"},"key2":{"label":"Four"}}
{{#concat s arr obj separator=", " distinct=true}}{{label}}{{/concat}}
结果:One, Two, Three, Four
其中 s 是 "One",arr 是 ["One", "Two"],而 obj 是 {"key0":{"label":"Two"},"key1":{"label":"Three"},"key2":{"label":"Four"}}
{{#concat s arr obj separator=", " distinct=true render_all=true}}<{{#if label}}{{label}}{{else}}{{this}}{{/if}}/>{{/concat}}
结果:<One/>, <Two/>, <Three/>, <Four/>
许可证
此库(handlebars-concat)在BSD 2许可证下开源。
依赖项
~2.8–4MB
~80K SLoC