首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改Hakyll示例站点

修改Hakyll示例站点
EN

Stack Overflow用户
提问于 2013-04-07 16:32:50
回答 2查看 626关注 0票数 6

我希望修改以下代码,而不是生成指向站点上最新三个帖子的链接,而是像传统博客一样,完整地再现帖子的正文。我很难理解下面发生了什么,以及必要的改变是什么。

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2013-05-05 13:42:02

这并不完全是微不足道的。第一步是引入snapshots

正如本教程中所解释的,这可以确保您可以在索引中包含博客帖子,而无需先将模板应用于HTML。所以你会得到类似这样的东西:

代码语言:javascript
复制
match "posts/*" $ do
    route $ setExtension "html"
    compile $ pandocCompiler
        >>= loadAndApplyTemplate "templates/post.html"    postCtx
        >>= saveSnapshot "content"
        >>= loadAndApplyTemplate "templates/default.html" postCtx
        >>= relativizeUrls

现在,为了在索引页面上显示帖子,您将能够使用帖子的整个$body$。为此,您只需将templates/post-item.html更新为以下内容:

代码语言:javascript
复制
<div>
    <a href="$url$"><h2>$title$</h2></a>
    $body$
</div>
票数 3
EN

Stack Overflow用户

发布于 2013-12-08 06:21:00

我知道这篇文章有点老了,但由于它似乎没有得到解决,这里是我如何处理它的。

首先保存一个快照,如@jaspervdj所述:

代码语言:javascript
复制
match "posts/*" $ do
  route $ setExtension "html"
  compile $ pandocCompiler
    >>= loadAndApplyTemplate "templates/post.html"  postCtx
    >>= saveSnapshot "content"
    >>= loadAndApplyTemplate "templates/default.html" postCtx
    >>= relativizeUrls

然后,对于index.html,使用loadAllSnapshots加载所有post快照

代码语言:javascript
复制
match "index.html" $ do
  route idRoute
  compile $ do
    posts <- recentFirst =<< loadAllSnapshots "posts/*" "content"
    let indexCtx = listField "posts" postCtx (return posts) `mappend`
                   defaultContext

由于快照是在应用default模板之前拍摄的,因此$for(posts)$中的$body$值将只是每个帖子模板的内容,而不会应用默认模板。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15860444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档