私はそこに何かが組み込まれているとは思わない。幸いにも、Hamletでヘルパー関数を使用するのは簡単です。たとえば、アイテムが平易な文字列の場合は、Data.List.intercalate
を使用して間にカンマを追加できます。
The values in the list are
#{intercalate ", " list}
and that is it.
好きなことをしたい場合は、ハムレット値を扱う関数を書くことができます。たとえば、カンマと「and」をハムレットの値の間に追加する関数です。
commaify [x] = x
commaify [x, y] = [hamlet|^{x} and ^{y}|]
commaify (x:xs) = [hamlet|^{x}, ^{commaify xs}|]
これは別のものに1つのハムレット値を挿入するために^{...}
構文を使用しています。さて、これを使ってカンマ区切りの下線付き単語のリストを書くことができます。ここで
The values in the list are
^{commaify (map underline list)}
and that is it.
は、underline
は単なるテキストより面白いものを作るために小さなヘルパー関数です。
underline word = [hamlet|<u>#{word}|]
レンダリングすると、次の結果が得られます。
The values in the list are <u>foo</u>, <u>bar</u> and <u>baz</u> and that is it.
ありがとう、私はソリューションの良い集まりだと思いますが、テンプレートハスケルが提供するものを満足するものはありません。たぶん私は、特別な '' loop''変数のためのパッチをhamletに提出するべきです。 –