やあ!
各ノードに各ページの HTML コンテンツが含まれる Haskell の巨大なマルチノード ツリーがあるとします。
Yesod を使用して、ユーザーは URL /myPage と Handler を使用して Web ページにアクセスします。
getMyPageR :: Handler Html
が呼び出されます。
私が欲しいのは、現在のツリー ノードによって生成されるページの HTML コンテンツです。
ツリーでは、ルートから始めて、現在のノードの HTML コンテンツを抽出し、それを現在のページとして表示します。各ページには、ユーザーの選択を表す複数のボタンがあります。現在のノードの子ごとに 1 つのボタンがあります。次に、ユーザーの選択に応じて、ユーザーが選択した特定の子までツリーが 1 レベル下がり、新しい HTML コンテンツが表示されます。その後、ユーザーは別の選択を行うことができます。ツリーは再び 1 レベル下に移動し、新しい HTML コンテンツが表示されます。などなど。
基本的に、ユーザーが選択するたびに、リーフ ノードに到達するまでツリーが 1 レベル下がります。
Haskell の Zippers を使用してこれを実装することを考えていたので、ツリーを簡単に移動して、移動した場所のパンくずリストを保持できます。
Yesod でこれを実装するための良い解決策は何ですか? この優れたソリューションに、ジッパーの使用を含めてほしいと思います。
解決策の 1 つは、同じページで POST/Redirect/GET を使用してセッションを介してツリーを送信することですが、ツリーが大きすぎる場合は機能しません。
質問が十分に明確でない場合は、遠慮なく質問を明確にしてください。
前もって感謝します。