Yesod,Hamlet,按条件生成标记属性

时间:2014-05-12 13:33:32

标签: haskell yesod

按条件生成HTML标记属性的更好方法是什么。我在模块中有一个外部函数,它可以给我一些价值(例如Bool)。基于我需要或不需要在标签上添加一个类。这个元素有孩子。

<tr *class should be here*>
  <td>
  ...

1 个答案:

答案 0 :(得分:0)

由于Hamlet允许在插值中应用函数,因此您只需使用该函数即可。示例演示:

{-# LANGUAGE QuasiQuotes #-}

import Text.Hamlet (shamlet)
import Text.Blaze.Html.Renderer.String (renderHtml)

myClass :: Bool -> String
myClass _ = "dummyClass"

main :: IO ()
main = putStrLn $ renderHtml [shamlet|
 <tr .#{myClass True}>
   <td> dummy text |]

在ghci:

λ> main
<tr class="dummyClass"><td> dummy text </td>
</tr>