小编Ste*_*fen的帖子

yesod-bin缺少(未知)依赖?

如何安装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)

haskell cabal yesod

7
推荐指数
1
解决办法
642
查看次数

使用yesod生成动态表单

如何使用不同数量的输入字段动态生成表单?

我管理的最接近的是:

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)

haskell yesod

6
推荐指数
1
解决办法
932
查看次数

使用带有setMessage的类型安全的URL?(Shamlet与hamlet)

如何在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的位置分开.感谢任何指针朝着正确的方向!

yesod hamlet

3
推荐指数
1
解决办法
253
查看次数

标签 统计

yesod ×3

haskell ×2

cabal ×1

hamlet ×1