无法通过标记枚举Jekyll页面

时间:2014-09-03 18:49:12

标签: html ruby yaml jekyll

目标

生成由单个标记过滤的页面列表。

问题

列表不会出现。

我试过的东西

我从默认的Jekyll网站中的<nav>元素开始:

<nav class="site-nav">
<div class="trigger">
  {% for page in site.pages %}
    {% if page.title %}
      <a class="page-link" href="{{ page.url | prepend: site.baseurl }}">{{ page.title }}</a>
    {% endif %}
  {% endfor %}
</div>
</nav>

当Jekyll网站为serve d时,会在nav元素中显示“关于”页面。

我在网站的不同网页上添加了两个标签:

tags:
- eng
---

我尝试了两种格式:

tags: eng
---
  1. 尝试枚举site.tags.eng(也尝试site.tags[eng]site.tags["eng"]):

    <div class="trigger"> {% for page in site.tags.eng %} {% if page.title %} <a class="page-link" href="{{ page.url | prepend: site.baseurl }}">{{ page.title }}</a> {% endif %} {% endfor %} </div>

  2. 尝试测试标记(带或不带引号):

    <div class="trigger"> {% for tag in site.tags %} {% if tag == "eng" %} {% if page.title %} <a class="page-link" href="{{ page.url | prepend: site.baseurl }}">{{ page.title }}</a> {% endif %} {% endif %} {% endfor %} </div>

  3. 还要将标记列表添加到_config.yml

    # Tags
    tags: [eng, jpn]
    
  4. 在示例帖子中添加标签,以查看是否只有帖子被编入索引

  5. 我看过的其他问题

1 个答案:

答案 0 :(得分:2)

页面上的设置标记:

tags: [ tag1, tag3 ]
---
or
tags:
 - tag1 
 - tag2
---

如果您想从标签中创建列表:

<ul>
  {% for p in site.pages %}
    {% if p.tags contains 'tag2' %}
    <li><a href="{{ p.url | prepend: site.baseurl }}">{{ p.title }}</a></li>
    {% endif %}
  {% endfor %}
</ul>

次要答案:

  • 关于页面显示在页面列表(默认菜单)中它是一个页面
  • 是正常的
  • 标记页面不会出现在 site.tags 哈希中,只会发布帖子。