Snapを使用して Web アプリケーションでHeistテンプレートを前処理するためのフックをいくつか追加したいと考えています。これまでの私の素朴なアプローチは、アプリケーション初期化子で次のコードを使用することでした。
app :: SnapletInit App App
app = makeSnaplet "app" "The main web application" Nothing $ do
-- ...
h <- nestSnaplet "heist" heist $ heistInit "resources/templates"
-- ...
modifyHeistTS . addOnLoadHook $ myTemplateHook
テンプレートが「リソース/テンプレート」からロードされた後にフックが追加されるため、このコードはもちろん機能しません。
OnLoad フックを追加するために、初期テンプレートがロードされる前に Heist テンプレートの状態を変更するにはどうすればよいでしょうか?