【问题标题】:Jekyll 2.0 listing all post from category breaksJekyll 2.0 列出了分类中断中的所有帖子
【发布时间】:2014-07-13 10:54:42
【问题描述】:

我最近从 Jekyll pre-1.0 迁移到了 2.0。

在我的原始代码中,在每篇博客文章中,它都会列出与当前正在查看的文章属于同一类别的所有文章标题。以前这段代码有效:

{% for post in site.categories.[page.category] %}
    <li {% if page.title == post.title %} class="active" {% endif %}>
    <a href="{{ post.url}}">{{ post.title }}</a></li>
{% endfor %}

但是在新版本中这不起作用,我必须像这样单独指定类别:

{% for post in site.categories.['NAME_OF_CATEGORY'] %}

为什么我不能像以前那样动态检查类别?有没有办法解决这个问题而不是使用if 语句?

【问题讨论】:

    标签: jekyll liquid


    【解决方案1】:

    我想通了。在每篇文章中,我的 YAML 前端类别变量都采用大写或驼峰形式。示例:category: ABCcategory: Zyx

    执行page.category 将始终返回实际类别,因为它写在front-matter 中,即ABCZyx。但是site.categories.[CAT] 只接受小写的CAT(液体语言中的小写)。

    因此这将适用于site.categories.['abc']site.categories.['xyz']。 但这将失败site.categories.['ABC']site.categories.['Xyz']。和site.categories.[page.category]一样。

    解决方案。以小写形式分配当前页面类别,如下所示:

    {% assign cat = page.category | downcase %}
    
       {% for post in site.categories.[cat] %}
           <li {% if page.title == post.title %} class="active" {% endif %}>
           <a href="{{ post.url}}">{{ post.title }}</a></li>
       {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      • 2015-03-15
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多