How can I include an hamletfile inside another usi

2019-05-04 04:32发布

问题:

For reusability, I want to re-use a widget inside another. For instance, the widget file blogpost.hamlet could contain how a post is displayed, and blog.hamlet could contain the full blog.

The following content of blog.hamlet does not work:

$forall post <- posts
    ^{widgetFile "blogpost")

So, what is the correct syntax to embed one widget inside another?

回答1:

The Hamlet syntax does not support embedding Template Haskell splices inside of it, which makes the code you're looking to do impossible. Instead, you need to create a helper function in Haskell, e.g.:

blogpost post = $(widgetFile "blogpost")

Then in blog.hamlet, you can have:

$forall post <- posts
    ^{blogpost post}


标签: haskell yesod