2011-06-23 9 views
2

blitzや他のコンパイル時のテンプレートライブラリをhappstackで使用する方法については、たくさんのドキュメントがありますが、htmlファイルをテンプレートとして使用する方法を知りたいと思います。happstackのテンプレートとしてhtmlファイルを使用する

+0

この質問に対する回答も参照してください。http://stackoverflow.com/q/5770168/371753 – sclv

答えて

1

多くのオプションがありますが、私のお気に入りは、あなたがspliceを定義することができるようになるHeist、次のようになります。

(実行時にロード)、動的に使用することができ
> factSplice :: (Monad m) => TemplateMonad m Template 
> factSplice = do 
> input <- getParamNode 
> let text = T.unpack $ X.nodeText input 
>  n = read text :: Int 
> return [X.TextNode $ T.pack $ show $ product [1..n]] 
> 

HTMLテンプレート:

<html> 
    <head> 
    <title>Factorial Page</title> 
    </head> 
    <body> 
    <h1>Factorial Page</h1> 
    <p>The factorial of 6 is <fact>6</fact></p> 
    </body> 
</html> 

heisthappstackに使用するには、happstack-heistパッケージが必要です。詳細およびその他のオプションについては、Using Heistを参照してください。

0

HStringTemplateパッケージだけでなく、HTMLのための非常に一般的なランタイムテンプレートシステムを提供していますが、テキスト出力の任意の並べ替えは:

http://hackage.haskell.org/packages/archive/HStringTemplate/0.6.6/doc/html/Text-StringTemplate.html

HStringTemplateパッケージがうまくにより提供されるいくつかの余分なインスタンスを通じてHappstackと統合しますオプションのパッケージ:http://hackage.haskell.org/package/happstack-hstringtemplate

関連する問題