Arrays jekyll数组可以有空格吗?

Arrays jekyll数组可以有空格吗?,arrays,jekyll,liquid,Arrays,Jekyll,Liquid,在我的前面,我有如下分类 categories: ['hello world', 'code', 'lunch'] 但当我试图把它们分开时,它会用空格而不是逗号把它们分开。我正在使用以下代码 {% capture categories %} {% for category in site.categories | join: ' '%} {{ category[0] }} {% endfor %} {% endcapture %} {% assign sortedcategories = c

在我的前面,我有如下分类

categories: ['hello world', 'code', 'lunch']
但当我试图把它们分开时,它会用空格而不是逗号把它们分开。我正在使用以下代码

{% capture categories %}
{% for category in site.categories | join: ' '%}
{{ category[0] }}
{% endfor %}
{% endcapture %}

{% assign sortedcategories = categories | split:' ' | sort %}

{% for category in sortedcategories %}
<h3>{{ category }}</h3>

<ul>
{% for post in site.categories[category] %}
  <li>{{ post.url }}</li>
{% endfor %}

</ul>

{% endfor %}
{%capture categories%}
{%用于site.categories中的类别|加入:'%}
{{类别[0]}
{%endfor%}
{%endcapture%}
{%assign sortedcategories=categories | split:''排序%}
{sortedcategories%中类别的%s}
{{category}}
    {%用于站点中的帖子。类别[类别]]}
  • {{post.url}
  • {%endfor%}
{%endfor%}

我尝试使用分号作为分隔符,但当我到达site.categories[类别]时,该部分失败,并且不会在列表中显示任何内容。有什么想法吗?还是应该使用没有空格的类别?或者使用连字符?

您要做的是:

{% assign sortedcategories = page.categories | sort %}

{% for category in sortedcategories %}
<h3>{{ category }}</h3>

<ul>
{% for post in site.categories[category] %}
  <li>{{ post.url }}</li>
{% endfor %}

</ul>

{% endfor %}
{%assign sortedcategories=page.categories | sort%}
{sortedcategories%中类别的%s}
{{category}}
    {%用于站点中的帖子。类别[类别]]}
  • {{post.url}
  • {%endfor%}
{%endfor%}

在前面的内容中,
类别:[“hello world”、“code”、“午餐”]
创建了一个数组。 你在前五行中所做的都是无用的

我还发现,对于join和split正在做的事情存在误解:

参加
{{page.categories}加入:::“}}
=>字符串
“你好,世界::代码::午餐”

分裂
{{“你好世界::代码::午餐”|拆分::“
=>数组
[“你好世界”,“代码”,“午餐”]

注:

  • 前端主变量可通过
    页面访问。变量
  • 您不能在循环中使用筛选器。例如:
    {%for category in site.categories | sort%}
    您必须首先指定一个变量,然后循环使用它

    • 好的,我得到了答案。换行符非常重要。我不知道我读了多少遍,但我仍然忘记/忽略了它。这是我的最终代码

      {% capture categories %}
        {% for category in site.categories %}{{ category | first }}{% unless forloop.last %},{% endunless %}{% endfor %}
      {% endcapture %}
      
      {% assign sortedcategories = categories | split: ',' | sort %}
      
      {% for category in sortedcategories %}
        <h3>{{ category }}</h3>
        <ul>
          {% for post in site.categories[category] %}
            <li>{{ post.title }}</li>
          {% endfor %}
        </ul>
      {% endfor %}
      
      {%capture categories%}
      {%for site.categories%}{{category | first}{%forloop.last%},{%end除非%}{%endfor%}
      {%endcapture%}
      {%assign sortedcategories=categories | split:','| sort%}
      {sortedcategories%中类别的%s}
      {{category}}
      
        {%用于站点中的帖子。类别[类别]]}
      • {{post.title}}
      • {%endfor%}
      {%endfor%}

      因此,前3行代码创建类别并存储所有site.categories值,这些值由逗号分隔。这就是我弄糟的地方-第2行应该都是一行,而不是拆分。否则,检查site.categories[category]的for循环永远不会匹配。这就是为什么我会得到类别列表,但我从来没有得到属于每一个类别的帖子。

      好吧,我正在尝试创建一个categories.html页面,列出我使用过的所有类别。在每个类别中,我想列出具有该类别的帖子。这就是为什么我使用site.categories而不是page.categories。在你的问题中,你谈论的是前沿问题。对我来说,这意味着你的数组是在你的页面/帖子中声明的。你的前三行正在做一个
      site.categories | join:,“
      然后做一个
      拆分|排序
      。这没用。一个
      site.categories |排序
      就足够了。