使用Data.Tree在Yesod中生成HTML页面内容

时间:2013-10-21 15:27:30

标签: haskell yesod hamlet

你好!

假设我在Haskell中有一个巨大的多节点树,其中每个节点都包含每个页面的HTML内容。

使用Yesod,用户将使用URL / myPage和Handler

访问网页
getMyPageR :: Handler Html 

将被调用。

我想要的是当前树节点生成的页面的HTML内容。

在树中,我们从根开始,我们提取当前节点的HTML内容并将其显示为当前页面。在每个页面中,有多个按钮代表用户的选择。当前节点的每个子节点都有一个按钮。然后,根据用户的选择,树将下降一级到用户选择的特定子级,并显示新的HTML内容。然后,用户可以进行另一个选择,树再次下降一级,并出现新的HTML内容。等等。

基本上,用户的每个选择都会将树降低一级,直到我们到达叶节点。

我正在考虑在Haskell中使用Zippers实现这一点,以便我可以轻松地穿过树并保持面包屑的行进位置。

在Yesod中实现此功能的好方法是什么?我希望这个好的解决方案包括使用拉链。

一个解决方案可能是在同一页面上使用POST / Redirect / GET通过Sessions发送树,但如果树太大,它将无法工作。

如果不够清楚,请不要犹豫让我澄清我的问题。

提前致谢。

0 个答案:

没有答案