首页 > 解决方案 > Github Pages:在 index.html 中添加 if 条件

问题描述

我在 Github Pages 上使用Jekyll Now创建了一个博客

默认的 Index.html 如下所示

---
layout: default
---

<div class="posts">
  {% for post in site.posts %}
        <article class="post">

          <h2><a href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a></h2>

          <div class="entry">
            {{ post.excerpt }}
          </div>

          <a href="{{ site.baseurl }}{{ post.url }}" class="read-more">Read More</a>
        </article>
  {% endfor %}
</div>

这将创建一个登录页面,您在 _posts 目录中创建的所有帖子的标题都将显示并带有链接。

查看{% for ... %}&&{% endfor %}最终的静态 HTML,似乎在构建页面时,for 标签实际上是迭代的,并且最终的 HTML 包含一个实际标题列表。

我想更改此设置,以便未列出所有帖子。我不想列出任何标题包含字符串“BEINGWRITTEN”的帖子

我试过像

{% for post in site.posts %}
    {% if (post.title.indexOf('BEINGWRITTEN') == -1) %}
        <article class="post">
...
        </article>
    {% endif %}
{% endfor %}

还尝试使用包含而不是 indexOf,这也不起作用。在这两种情况下,我都没有在登录页面上看到任何链接的帖子。

我该怎么做呢?

标签: if-statementgithubconditional-statementsgithub-pagesblogs

解决方案


我通过在我不想包含的页面的前面添加一个类别来做到这一点。

即类别:noshow

然后将 index.html 更改为

   {% for post in site.posts %}

      {% unless post.category == "noshow" %}

          .....

      {%endunless}

   {%endfor}

推荐阅读