2014-11-21 101 views
1

我在我的_config.yaml中有一个数组。比方说Jekyll数组包含检查

exclude_pages: [ "/404.html", "/search.html", "/atom.xml", "/rss.xml", "/index.html", "/sitemap.txt" ] 

我想要做的就是在site.pages的页面循环中排除这些页面。所以下面是我正在尝试的代码。

{% for entry in site.pages %} 
    {% if site.exclude_pages contains entry.url %} 
     <!-- Do Nothing --> 
    {% else %} 
     <!-- Show Page --> 
    {% endif %} 
{% endfor %} 

但不知何故,它没有发生。这段代码中所有页面都被忽略。

任何想法我在这里失踪?

+0

尝试回声'entry.url'像:'看跌期权 “[#{entry.url}]” '以确保没有多余的无形空间等。 – mudasobwa 2014-11-21 15:55:31

+0

我试过了。问题是'entry.url'显示'exclude_pages'数组中的确切字符串。但if条件检查失败。我试图显示条件的布尔输出。它每次都返回整个数组,而不是任何布尔值。参考屏幕截图:http://imgur.com/8KR1pnO – 2014-11-22 06:46:22

回答

5

尝试:

exclude_pages: [ "index.html", "anyfolder/index.html" ] 

然后循环与entry.pathentry.url

{% for entry in site.pages %} 
    {% if site.exclude_pages contains entry.path %} 
     <!-- Do Nothing --> 
    {% else %} 
     <!-- Show Page --> 
    {% endif %} 
{% endfor %} 
+0

在这方面也没有找到运气。这个问题是我在上面的评论中提到的。 if条件检查不返回任何布尔值。而是它返回整个数组本身。请参阅:http://imgur.com/8KR1pnO – 2014-11-22 06:48:47

+0

这两个代码在这里工作。你有github存储库吗? – 2014-11-22 08:18:38

+0

没关系。得到它的工作。看来,睡眠在我身边徘徊。这是一个编码错误。 Thanx反正。 :) – 2014-11-23 20:40:46