誰かがYesodなしでハムレットを使用する方法の例を教えてもらえますか? http://www.yesodweb.com/book/templatesは素晴らしいドキュメントですが、クラッシュすることなく簡単なハムレットテンプレートをレンダリングするためにghciセッションを取得することはできません。ハスケルでハムズを使用する場合Yesodなしの場合
答えて
ここには、タイプされたURLのレンダリングを含む、基本的な事項のほとんどを示す例があります。
{-# LANGUAGE TemplateHaskell, QuasiQuotes #-}
import Data.Text
import Text.Blaze.Html.Renderer.String (renderHtml)
import Text.Hamlet hiding (renderHtml)
data Url = Haskell | Yesod
renderUrl Haskell _ = pack "http://haskell.org"
renderUrl Yesod _ = pack "http://www.yesodweb.com"
title = pack "This is in scope of the template below"
template :: HtmlUrl Url
template = [hamlet|
<html>
<head>
#{title}
<body>
<p>
<a [email protected]{Haskell}>Haskell
<a [email protected]{Yesod}>Yesod
|]
main = do
let html = template renderUrl
putStrLn $ renderHtml html
出力:
<html><head>This is in scope of the template below</head>
<body><p><a href="http://haskell.org">Haskell</a>
<a href="http://www.yesodweb.com">Yesod</a>
</p>
</body>
</html>
これをそのまま試してみると、このghcのコンパイルエラーが発生します:http://pastie.org/2220259 @ {}を#{}に変更するとget:http://pastie.org/2220261 – singpolyma
ここで 'ghc 7.0.2'と' hamlet 0.8.2'を使って 'runghc'を実行するとうまくいきます。どのようにこれを実行していますか?最初のエラーは非常に奇妙に見えます。言語プラグマはどのようにHTMLに終わったのですか?もう一つは 'pack'呼び出しのいくつかを削除する必要があるようです。 – hammar
ghc --makeを実行しようとしていましたが、runghcを試してみました。http://pastie.org/2220468 ghc 7.0.3 hamlet 0.6.1.2 - 私のバージョンはかなり古いものです。おそらく構文が変更されています:( – singpolyma
まあ、URLのレンダリングをhandwavingと作品愚かな方法で物事をやって、私たちはこれを使用することができます:
hamVal = [$hamlet|
<html>
<head><title>Test page
<body>Testing
|]
test :: ByteString
test = renderHamlet (\_ _ -> "") hamVal
期待通りに動作します。もう少し便利なことをしたいと思っていますが、ここの簡単な例はうまくいきますので、どこに問題があるのかわからなくてももっと言い表すのは難しいです。
ああ、私はそれを発見しました。どうやらhamletはhamlに似ていましたが、私のバージョンは古い構文です – singpolyma
- 1. CoreAnimationを使用しない場合と使用しない場合
- 2. ハスケルの場合の短い構文?
- 3. MVVMを使用しない場合は?
- 4. Railty - 使用する場合
- 5. AJAXを使用する場合とWebアプリケーションでAJAXを使用しない場合
- 6. Silverlightでエンティティを使用してLINQを結合する場合
- 7. ハスケルで大きな数字を扱う場合
- 8. PARTITION BY(OracleでKEEPを使用している場合と使用していない場合)
- 9. 目的Cコンベンション:使用する場合と使用する場合
- 10. pageBaseTypeを使用する場合と使用しない場合のページ構成セクションの相違点
- 11. Executorを使用する場合と使用しない場合のマルチスレッドの違い
- 12. ASP.NETでJavaScriptを使用する場合
- 13. iPhoneでOpenGlを使用する場合
- 14. JSONでリストを使用する場合
- 15. Geventでスレッドプールを使用する場合
- 16. 異なる場合でUIの更新が異なる場合
- 17. デリゲートを使用する(または使用しない)場合
- 18. デフォルトを使用する場合とモデルのコンストラクタを初期化する場合
- 19. NoClassDefFoundErrorを使用している場合
- 20. 化合物pkを使用した場合の化合物pk
- 21. solを使用する場合のOOM
- 22. PHP:CURLを使用する場合のセキュリティ?
- 23. ウェブソケットを使用する場合のベストプラクティス?
- 24. ArgumentMatcherを使用する場合のNullPointerException
- 25. AppDomain.CurrentDomain.AssemblyResolveを使用する場合のメモリリーク
- 26. MySQLでSOLRを使用した場合のDataSource = 0の合計
- 27. ASP.NET MVC 2 - テンプレートを使用する場合と部分的なビューを使用する場合
- 28. afficheを使用した場合のエラー
- 29. VLookupを使用した文の場合
- 30. ピカソを使用した場合のjava.lang.NoSuchMethodError
あなたはGHCiの中でやって、そしてどのようにそれがクラッシュしたものを示した場合、それは役立つかもしれません。 –