誰かが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. エラーの場合はハスケル
- 2. Python 2.7で__init__を使用しない場合と使用する場合
- 3. sass - 使用する場合としない場合
- 4. awsラムダ関数を使用しない場合と使用しない場合
- 5. CoreAnimationを使用しない場合と使用しない場合
- 6. $ thisを使用する場合とシンプルな変数を使用する場合
- 7. ハスケルの場合の短い構文?
- 8. 開発ツールを使用する場合と、Chromeで使用しない場合の違いは何ですか?
- 9. C++ - コピーコンストラクタでconstを使用する場合と使用しない場合の違いは何ですか?
- 10. onclickの場合、 `onclick =" confirmOnSubmit() `vs` onclick = "confirmOnSubmit`を使用する場合
- 11. Javaの場合getterを使用する場合
- 12. SQL Serverクエリの場合完全クエリを使用する場合
- 13. 'Promise'を使用すると 'Promise'を使用しない場合:どの場合ですか?
- 14. getManagerを使用する場合と使用しない場合のgetRepositoryの違いは何ですか?
- 15. Invokeを使用する場合と使用しない場合の違いは何ですか?
- 16. Railty - 使用する場合
- 17. MVVMを使用しない場合は?
- 18. ハスケルで大きな数字を扱う場合
- 19. AJAXを使用する場合とWebアプリケーションでAJAXを使用しない場合
- 20. ハスケルYesod問題
- 21. Silverlightでエンティティを使用してLINQを結合する場合
- 22. PARTITION BY(OracleでKEEPを使用している場合と使用していない場合)
- 23. C#の 'new'キーワードを使用する場合と使用しない場合のオブジェクトプロパティの設定
- 24. 目的Cコンベンション:使用する場合と使用する場合
- 25. 「new」キーワードを使用する場合と使用しない場合の違いを教えてください
- 26. JSONでリストを使用する場合
- 27. Angularjsで$ q.defer()を使用する場合
- 28. Geventでスレッドプールを使用する場合
- 29. iPhoneでOpenGlを使用する場合
- 30. Laravelでピボットテーブルを使用する場合
あなたはGHCiの中でやって、そしてどのようにそれがクラッシュしたものを示した場合、それは役立つかもしれません。 –