Добавление перехватчиков OnLoad для шаблонов Heist с помощью Snap Web Framework
Я хочу добавить несколько хуков для предварительной обработки шаблонов Heist в веб-приложении с помощью Snap. До сих пор мой наивный подход заключался в использовании следующего кода в моем инициализаторе приложения:
app :: SnapletInit App App
app = makeSnaplet "app" "The main web application" Nothing $ do
-- ...
h <- nestSnaplet "heist" heist $ heistInit "resources/templates"
-- ...
modifyHeistTS . addOnLoadHook $ myTemplateHook
Этот код, конечно, не работает, так как хук добавляется после загрузки шаблонов из "ресурсов / шаблонов"
Как можно изменить состояние шаблона Heist до загрузки начальных шаблонов, чтобы добавить хуки OnLoad?
1 ответ
Отличный вопрос. Похоже, это упущение с моей стороны при разработке библиотеки. Я подумаю, как лучше поддержать это и вернусь к вам.
Если вы хотите немедленное решение, вставьте что-нибудь, чтобы добавить свой хук в состояние шаблона, которое передается здесь в loadTemplates. Или же вы можете изменить emptyTemplateState прямо в Heist.
Обновление: я добавил функцию heistInit, которая должна решить эту проблему. Это будет в следующем выпуске взлома. До тех пор вы можете получить его из GitHub.