在 Jekyll 网站上使用 Liquid 标签进行导航

Using Liquid tags for navigation on Jekyll site

我的 Jekyll 站点上有以下结构:

- Home
- Knowledge Base (/kb/)
 - Post 1 (/kb/post1/)
 - Post 2 (/kb/post2/)
- About

在除主页之外的每个页面上,我都有指向主页的导航。在帖子中,我有导航到知识库。我已经有了一些代码并且可以正常工作。但是有没有办法让它更简单呢?

导航代码:

<nav>
 {% if page.title == 'Knowledge Base' %}
   <a href="/"></a>
 {% elsif page.path contains 'kb' %}
   {% unless page.title == 'Knowledge Base' %}
     <a href="/kb/"></a>
   {% endunless %}
 {% elsif page.title != 'Home' %}
   <a href="/"></a>
 {% endif %}
</nav>

From posts you can go only to knowledge base. From knowledge base and all other pages, except home, you can go to home page. On the home page there is no navigation.

<nav>
 {% if page.title == 'Knowledge Base' and page.title == 'About'% %}
    <a href="/"></a>
 {% endif %}

 {% if page.title != 'Home' 
       and page.title != 'Knowledge Base' 
       and page.title != 'About' %}
       <a href="/kb/"></a>
 {% endif %}
</nav>

无论如何,我会在 header(例如 page.template)中使用不同的页面变量而不是 page.title,而不是严格依赖于可能的特定页面标题(或语言)改变。

同时考虑将此代码片段作为单个文件包含在内,以便于维护。

我将所有帖子移至 _posts 内的 kb 文件夹,并最终使用此代码:

<nav>
  {% if page.path contains '_posts/kb' %}
    <a href="/kb/"></a>
  {% elsif page.title != "Home" %}
    <a href="/"></a>
  {% endif %}
</nav>