pga*_*gay 6 blogs haskell web hakyll
我希望修改以下代码,以便不是生成网站上最新三个帖子的链接,而是完全重现帖子的正文,就像在传统博客中一样.我在理解下面发生的事情时遇到了一些困难,以及必要的改变是什么.
match "index.html" $ do
route idRoute
compile $ do
let indexCtx = field "posts" $ \_ ->
postList $ fmap (take 3) . recentFirst
getResourceBody
>>= applyAsTemplate indexCtx
>>= loadAndApplyTemplate "templates/default.html" postCtx
>>= relativizeUrls
Run Code Online (Sandbox Code Playgroud)
这并不完全是微不足道的。第一步是引入快照。
如教程中所述,这可确保您可以将博客文章包含在索引中,而无需先将模板应用到 HTML。所以你会得到类似的东西:
match "posts/*" $ do
route $ setExtension "html"
compile $ pandocCompiler
>>= loadAndApplyTemplate "templates/post.html" postCtx
>>= saveSnapshot "content"
>>= loadAndApplyTemplate "templates/default.html" postCtx
>>= relativizeUrls
Run Code Online (Sandbox Code Playgroud)
现在,为了在索引页面上显示帖子,您将能够使用整个$body$帖子。为此,您只需更新templates/post-item.html为:
<div>
<a href="$url$"><h2>$title$</h2></a>
$body$
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
592 次 |
| 最近记录: |