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 |排序
就足够了。