Hakyll шаблон списка строк
Я перевожу свой блог на Хакилл.
В моем веб-дизайне на странице указателя есть горизонтальные строки с 3 предварительными просмотрами в каждой. Css/js сделан таким образом, что мне лучше заполнять этот ряд не всеми имеющимися у меня сообщениями, позволяя им отображаться автоматически, но лучше сократить список постов до кусков по 3 поста в каждом и генерировать отдельную строку с 3 сообщения для каждого куска.
Так что вместо
- row
- col-sm-4 - col-sm-4 - col-sm-4
- col-sm-4 ...
я хочу иметь
- row
- col-sm-4 - col-sm-4 - col-sm-4
- row
- col-sm-4 - col-sm-4 - col-sm-4
...
В моем site.hs
У меня довольно типичный
match "blog.html" $ do
route cleanRoute
compile $ do
posts <- recentFirst =<< loadAll "posts/**"
let indexCtx =
listField "posts" postCtxWithCat (return posts) `mappend`
favCtx
getResourceBody
>>= applyAsTemplate indexCtx
>>= loadAndApplyTemplate "templates/default.html" indexCtx
>>= relativizeUrls
>>= cleanIndexUrls
А теперь я хочу разрезать посты на куски по 3.
posts <- recentFirst =<< loadAll "posts/**"
let postsBy3 = chunksOf 3 posts -- from split package
Но как кормить это postsBy3 :: [[Item String]]
дальше к шаблону и как его использовать... это большой вопрос.
Просто делаю
listField "postsBy3" postCtxWithCat (return postsBy3) `mappend`...
явно несоответствие типов.
Штука.