首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >listField总是空的

listField总是空的
EN

Stack Overflow用户
提问于 2016-09-19 06:30:35
回答 1查看 89关注 0票数 0

我想在defaultContext中添加一个字段,它将为所有页面提供一个链接列表。因为我认为我不能改变defaultContext本身,所以我创建了一个函数,它向defaultContext添加了一个listField,并用它替换了对defaultContext的所有引用。虽然程序符合,但我的新listField是空的。

这是我的最新尝试。

代码语言:javascript
复制
-- site.hs
match "index.html" $ do
    route idRoute
    compile $ do
        links <- sortByTitle =<< loadAll "links/*"
        let indexCtx =
                listField "links" linkCtx (return links) `mappend`
                constField "title" "Home"                `mappend`
                myCtx

        getResourceBody
            >>= applyAsTemplate indexCtx
            >>= loadAndApplyTemplate "templates/default.html" indexCtx
            >>= relativizeUrls

match "templates/*" $ compile templateBodyCompiler

myCtx =
  listField "navItems" defaultContext (loadAll "nav/*") `mappend`
  defaultContext

-- nav/item.markdown
---
title: nav item 1
---

-- templates/default.html
<ul>
    $for(navItems)$
        $title$
    $endfor$
</ul>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-19 06:58:58

在加载项时,需要使用该项指定编译目标-请参阅加载函数。

load ::(二进制a,可键入a) =>标识符->编译器(项目a) 加载在其他地方编译的项。如果还没有编译所需的项,构建系统将自动处理这个问题。

添加一个简单的(不需要route )编译器应该可以修复它:

代码语言:javascript
复制
match "nav/*" $ compile pandocCompiler
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39566674

复制
相关文章

相似问题

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