用纯代码运行whamlet?

时间:2015-03-22 19:34:44

标签: haskell yesod hamlet

在yesod应用程序中,我想为将由graphviz呈现的图形创建URL属性,并且我想使用插值。理想情况下,

graphToDot nonClusteredParams { fmtNode = \ (n,l) -> 
     [ URL [whamlet| @{MyRoute ...} |]
   } g

当然,这些类型不匹配:

  • URL的属性为纯Text,但whamlet为monadic(小部件)
  • 当我用shamlet替换时,类型很好,但无法插值:URL interpolation used, but no URL renderer provided

有一种简单的方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

这适用:获取渲染函数(在monad中),并应用(在纯代码中)

render <- getUrlRender 
let d = graphToDot ... 
     [ URL $ render $ MyRoute ... ]

我在这里找到了这个问题,解决了类似的问题:https://github.com/yesodweb/yesod/wiki/Using-type-safe-urls-from-inside-javascript