1
我正在用Hakyll做一個網站,我想在同一頁面收集一些文章。我在網站上找到一些例子,如dannysu或EAnalytica,但我的代碼不工作,我不明白爲什麼。每頁有多篇文章
我的代碼編譯正常,trace
函數顯示所有的帖子都被加載,編譯成功,但所有的網頁應該包含3個帖子是空的。只有循環前的文本以及指向下一頁和前一頁的鏈接纔可見。
我Hakyll代碼如下。
toolsPages = do
pag <- buildPaginateWith grouper "tools/*" makeId
paginateRules pag $ \pageNum pattern -> trace (show pag) $ do
route idRoute
compile $ do
posts <- recentFirst =<< loadAll pattern
let paginateCtx = paginateContext pag pageNum
ctx =
constField "title" ("Tools - Page " ++ (show pageNum)) <>
listField "tools" (postCtx) (return posts) <>
paginateCtx <>
defaultContext
makeItem ""
>>= loadAndApplyTemplate "templates/outils-pag.html" ctx
>>= relativizeUrls
grouper ids = (liftM (paginateEvery 3) . sortRecentFirst) ids
makeId pageNum = fromFilePath $ "blog/page/" ++ (show pageNum) ++ "/index.html"
postCtx :: Context String
postCtx =
dateField "date" "%d/%m/%Y"
`mappend` bodyField "body"
`mappend` defaultContext
模板/ outils-pag.html模板包含以下內容。
some text before the loop
$for(tool)$
some text inside the loop
$date$
$teaser$
$body$
$endfor$
$if(previousPageNum)$
<a href="$previousPageUrl$">previous</a>
$else$
$endif$
—
$currentPageNum$ of $numPages$
—
$if(nextPageNum)$
<a href="$nextPageUrl$">next</a>
$else$
$endif$
你知道我的代碼有什麼問題嗎?
你知道另一個與Hakyll分頁的例子嗎?
什麼是「生成的網頁」?它創建分頁文件嗎? 「什麼都不顯示」是什麼意思,每個文件都是空的? – Bergi
我已添加一些精度。生成的頁面應該顯示3個帖子幾乎是空的。只顯示到下一頁和上一頁的鏈接。 – JeanJouX
'for'循環是否運行並在結果文件中創建一些空格(空行),還是'tools'本身是空的? – Bergi