Widget
- это просто трансформатор WriterT
, и когда вы добавляете шаблон, он добавляется после всех других ранее добавленных шаблонов. Если вы посмотрите в the scaffold's implementation of defaultLayout
, вы увидите, что он просто использует widgetFile
на default-layout
. Это заканчивается, включая часть hamlet
до участка julius
, а часть hamlet
включает в себя всю виджет отдельной страницы (если это имеет смысл ... это действительно рано здесь прямо сейчас).
Простое решение: поместите содержимое default-layout.julius
в другой файл (например, default-layout-early.julius
), а затем добавьте $(widgetFile "default-layout-early")
перед «default-layout». Это должно делать свое дело.
Я нашел решение моей проблемы: создайте дополнительный файл julius, содержащий код, который я поместил в default-layout.julius, и добавьте соответствующий виджет ко всем обработчикам ... Но меня все еще интересует другое решение, особенно если я могу лучше понять, как работает Йесод :-). – gueux