使用 Jekyll Logic 列出除当前页面之外的每一页

List Every Page Except The Current One With Jekyll Logic

我正在使用 Jekyll 构建一个数据库,并希望数据库中的条目具有指向同一类别中所有其他页面的链接。例如,类别 'a' 中的每个页面都将列出带有此代码段的按钮:

{% for page in site.pages %}
    {% if page.layout == 'a' %}
        <ul class="actions">
            <li><a href="/people/{{ page.title | remove: ' ' | strip_newlines | downcase | md5 }}/" class="button alt small">{{ page.title }}</a></li>
        </ul>
    {% endif %}
{% endfor %}

我遇到的问题是列出每个页面都会包含当前页面。我是否可以添加更多一层逻辑,使此代码段列出类别中除当前所在页面之外的所有页面?谢谢!

当前页面将其数据保存在page变量中,因此您需要选择另一个名称来循环浏览页面。

然后添加另一个条件以避免处理当前页面检测其 id:

{% for onepage in site.pages %}
.. If same category...
{% unless page.id == onepage.id %}
...
{% endunless%}
..endif...
{% endfor %}

我还想出了一种使用 if 语句来实现它的方法,我只是 post 为了 post 诚实。

{% for apage in site.pages %}
    {% if apage.layout == 'a' %}
        {% if page.url != apage.url %}
            <ul class="actions">
                <li><a href="/entries/people/{{ apage.title | remove: ' ' | strip_newlines | downcase | md5 }}" class="button alt small">{{ apage.title }}</a></li>
            </ul>                                               
        {% endif %}
    {% endif %}
{% endfor %}