如何在 setMessage 中使用类型安全的 url?
我想改变
...
setMessage [shamlet|<span .warning>Warning! See Help.|]
...
到包含链接的消息。
从我迄今为止收集到的信息来看,它应该以某种方式工作
...
renderer <- getUrlRender
let html = [hamlet|<span .warning>Warning! See #
<a href=@{HelpR}> Help!|]
setMessage $ toHtml $ html renderer
...
但该代码只是给我整个文件中令人困惑的错误消息。
我确实阅读了有关莎士比亚模板的印刷版 Yesod Book Chapter,但我发现它对所涉及的类型不是很明确。比如生产什么类型的[hamlet|...|]|
?如果没有 URL-Interpolation,ghci 会报告t -> Markup
但内部有 URL-Interpolation,我只会得到错误。
我对所涉及的所有类型同义词进一步感到困惑,例如[shamlet|...|]
提供一些类型的东西Html
,而setMessage
期望一个Html ()
。我不知道如何轻松查找这些内容:Hoogle 经常找不到关于该主题的任何内容,而 Google 总是会找到可能过时的版本(以及不再有效的示例) - 确定我最终会获得最新版本,但有没有地方可以我对这些有一个简单的概述?(ghci 可以列出一个类型的所有同义词吗?)
请注意,我实际上想在纯功能代码片段中生成消息,稍后由处理程序使用。这就是为什么我想将 URL 渲染与指定小村庄的地方分开。感谢您提供正确方向的任何指示!