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