如何安装yesod可执行文件?
> cabal install yesod-bin
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: yesod-bin-1.2.0
Run Code Online (Sandbox Code Playgroud)
所以它并没有告诉我缺少的实际依赖.
以前的一切都很好.我将我的linux操作系统更新为Suse12.3,然后yesod抱怨了几十个破坏的依赖项.所以我卸载了ghc,删除.ghc并.cabal在我的主目录中,重新安装了haskell-platform,做了cabal update然后cabal install yesod-platform,这一切都很顺利.注意到缺少yesod二进制文件,我发现了关于Yesod 1.2发布的博客文章,并尝试安装yesod-bin,现在失败但没有有用的错误消息.即使增加详细程度也不会向我提供任何有用的信息:
> ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.4.2
> cabal --verbose=3 install yesod-bin
searching for ghc in path.
found ghc at /usr/bin/ghc
("/usr/bin/ghc",["--numeric-version"])
/usr/bin/ghc is version 7.4.2
looking for tool "ghc-pkg" near compiler in /usr/bin
found ghc-pkg in /usr/bin/ghc-pkg
("/usr/bin/ghc-pkg",["--version"])
/usr/bin/ghc-pkg is version …Run Code Online (Sandbox Code Playgroud) 如何使用不同数量的输入字段动态生成表单?
我管理的最接近的是:
listEditForm :: [String] -> Html -> MForm App App (FormResult Text, Widget)
listEditForm xs = renderDivs $ mconcat [ areq textField (String.fromString x) Nothing | x <- xs]
Run Code Online (Sandbox Code Playgroud)
但是这有结果类型Text而不是[Text]预期的,由于它Text是一个实例的巧合Monoid,例如它失败了Int.
我有一个工作的替代尝试,它结合了几种形式,但不知何故它只适用于这个玩具示例,而真正的尝试失败了奇怪.无论如何,我不认为这是正确的方法:
data MapPair = MapPair { mpKey :: T.Text, mpValue :: Maybe T.Text }
editForm mmp = renderTable $ MapPair
<$> areq textField "Key" (mpKey <$> mmp)
<*> aopt textField "Value" (mpValue <$> mmp)
pair2mp (v,k) = MapPair { …Run Code Online (Sandbox Code Playgroud) 如何在setMessage中使用类型安全的URL?
我想改变
...
setMessage [shamlet|<span .warning>Warning! See Help.|]
...
Run Code Online (Sandbox Code Playgroud)
到包含链接的邮件.
从我迄今为止所能收集的内容来看,它应该以某种方式工作
...
renderer <- getUrlRender
let html = [hamlet|<span .warning>Warning! See #
<a href=@{HelpR}> Help!|]
setMessage $ toHtml $ html renderer
...
Run Code Online (Sandbox Code Playgroud)
但是该代码只是让我在整个文件中出现令人困惑的错误消息.
我确实阅读了关于莎士比亚模板的印刷Yesod书章,但我发现它对所涉及的类型并不十分明确.例如,什么类型的[hamlet|...|]|产品?没有URL-Interpolation,ghci报告t -> Markup但是内部有URL-Interpolation,我只是得到错误.
我对所涉及的所有类型同义词感到困惑,例如[shamlet|...|]提供类型的东西Html,同时setMessage期望a Html ().我不知道如何轻松查看这些内容:Hoogle经常发现这个主题没有任何内容,而Google总是发现可能过时的版本(示例不再有效) - 确定我最终会获得最新版本,但是有一个地方我对这些进行了简单的概述?(ghci可以列出一个类型的所有同义词吗?)
请注意,我实际上想要在纯函数代码片段中生成消息,稍后由处理程序使用.这就是为什么我想将URL呈现与指定hamlet的位置分开.感谢任何指针朝着正确的方向!