在 Jekyll / Liquid 中循环复制代码

For loop duplicating code in Jekyll / Liquid

我的输入非常简单。我从数据文件中提取内容以填充 <p>,然后 运行 方法 markdownify,但输出以(对我来说)意想不到的方式复制了 <p> 元素。

请指教!谢谢。

示例输入:

{% for item in site.data.filename.item %}
<p style="display:{{ item.display }}" id="{{ item.nav }}">{{ item.content | markdownify }}</p>
{% endfor %}

输出:

<p id="test" style="display:block"></p>
<p>testing output</p>
<p></p>

我的流畅语法有问题吗?非常感谢

嵌套段落时通常会发生这种情况。您应该从内容中删除 HTML 标签。

{{ item.content | strip_HTML}}

https://docs.shopify.com/themes/liquid/filters/string-filters#strip_html

如果你想保持html的格式,你可以用一个div来包裹内容,像这样:

{% for item in site.data.filename.item %}
<div style="display:{{ item.display }}" id="{{ item.nav }}">{{ item.content | markdownify }}</div>
{% endfor %}

您是否尝试删除 markdownify? 内部 jekyll 框架将应用 markdownify 所以我们不需要写 markdownify 我在删除了 markdownify 的情况下尝试了您的代码,并得到了单行 <p> 重复项。

strip_HTML 选项也有效。

删除 markdownify 或放置 strip_HTML

而不是display:{{ item.display }}尝试

display:{{ display }}

应该完成这项工作! :)