过滤掉ST4中的空字符串

Filter out empty strings in ST4

考虑以下示例:

<["foo", "", "bar"]; separator=",">

这给出了结果:

foo,,bar

但我需要:

foo,bar

有没有办法在 ST4 中使用分隔符格式化之前过滤掉空字符串值?

(在实际代码中,值来自另一个模板,该模板具有 <if> 条件和 returns 模型中不需要的数据的空结果,我不想将条件移出该模板保留模板 incapsulated/isolated。)

我找到了两个辅助工具的解决方法。但这太令人毛骨悚然了...

DropEmpty ::= ["": [], default: key]

Separated(l, s, w=false) ::= "<if (DropEmpty.(first(l)))><if (w)><s><endif><first(l)><Separated(rest(l), s, true)><else><if (rest(l))><Separated(rest(l), s, w)><endif><endif>"

MyTemplate() ::= <<
<Separated(["", "foo", "", "bar", "", "", "goo", "", ""], ",")>
>>

这给出:

foo,bar,goo