Ruby 在jekyll中显示具有标题的数组项
我有以下代码:Ruby 在jekyll中显示具有标题的数组项,ruby,jekyll,Ruby,Jekyll,我有以下代码: <nav> <ul> {% for page in site.pages %} {% if page.title %} <li><a href="{{ page.url | prepend: site.baseurl | prepend: site.url }}">{{ page.title }}</a></li> {% endif %} {%
<nav>
<ul>
{% for page in site.pages %}
{% if page.title %}
<li><a href="{{ page.url | prepend: site.baseurl | prepend: site.url }}">{{ page.title }}</a></li>
{% endif %}
{% endfor %}
</ul>
</nav>
{site.pages%中的页面为%s}
{%if page.title%}
{%endif%}
{%endfor%}
我还没有任何带有标题的页面,但我将来可能会有tidy-html5,我正在使用它输出带有缩进的html,警告ul是空的。没有标题检查,它会输出生成的页面标签或全局页面,如sitemap或rss提要
是否有一种方法可以先过滤阵列,然后在阵列为空时不显示导航,例如:
{% pages = [for page in pages if page.title] %}
{% if pages.length %}
<nav>
<ul>
....
</ul>
</nav>
{% endif %}
{%pages=[对于pages-in-pages,如果是page.title]}
{%if pages.length%}
....
{%endif%}
仅获取带有标题的页面:
pages = site.pages.select{ |p| p.title }
因此,您的代码可能类似于:
{% assign pages = site.pages.select{ |p| p.title } %}
{% if pages %}
<ul>
{% for page in pages %}
<li>...</li>
{% endfor %}
</ul>
{% endif %}
{%assign pages=site.pages.选择{| p | p.title}%}
{%if页面%}
{第%页中的第%页}
{%endfor%}
{%endif%}
get errorLiquid syntax error(第4行):未知标记“pages”
在我的OP中,我忘记用%}
结束第一个代码块。使用update编辑。我注意到您的错误,您的解决方案可以工作,但您需要添加{%assign pages=....%}
,如中所示