通过HStringTemplate生成具有一些逻辑的模板

时间:2013-05-19 13:46:43

标签: templates haskell hstringtemplate

以下是一些无效的HStringTemplate语法:

option_a = $options.a$
option_b = $options.b$
$if options.option_c_is_needed$
option_c = $option.c$
$end$

换句话说,只有在特定谓词为真时才应创建模板文件的一部分。如何通过HStringTemplate实现目标?如果没有办法在其中执行此操作,那么哪些库可能对此有帮助?

可能有一些模拟erubis机制,能够在模板文件中使用haskell代码吗?

1 个答案:

答案 0 :(得分:2)

哈马尔的评论是正确的。见下文:

*Main Text.StringTemplate> render $ setAttribute "optSet" False $ (newSTMP "OptSet: $if(optSet)$Option Is Set$else$Option Isn't Set$endif$" :: StringTemplate String)
"OptSet: Option Isn't Set"
*Main Text.StringTemplate> render $ setAttribute "optSet" True  $ (newSTMP "OptSet: $if(optSet)$Option Is Set$else$Option Isn't Set$endif$" :: StringTemplate String)
"OptSet: Option Is Set"