我正在尝试将Jekyll帖子的内容分成单词,并尝试了以下内容:
{% for word in post.content | split:' ' %}
{% do some stuff %}
{% endfor %}
不幸的是,这没有做任何事情; 'word'最终成为整个帖子。我在Github Pages上使用这个代码,所以不幸的是我无法编写插件来处理这个问题。我错误地使用了拆分过滤器吗? Liquid是否支持我正在尝试做的事情?
答案 0 :(得分:9)
您似乎可以使用split:
分割空白。
所以你可以尝试类似的东西:
{% capture words %}{{ post.content | split: }}{% endcapture %}
或:
{% assign words = post.content | split: %}
从我到目前为止测试的内容来看,您似乎应该使用后者(assign tag),因为当将值赋给变量时,捕获标记似乎在数组元素上执行隐式连接。
使用:
{% for post in site.posts limit:1 offset:6 %}
{% assign words = post.content | split: %}
{% for word in words %}{{ word }} {% endfor %}
{% endfor %}
似乎完整地重现了帖子内容。内部for循环中的空格非常重要。
就像现在的注释一样,如果你需要将一些单词与空格连接在一起,则连接标记似乎需要在字符周围加引号,如下所示:join:' '
。
我最终试图在空白上进行一些拆分,虽然它在我的开发环境中工作但它在Github Pages上不起作用。看起来Pages正在运行版本2.2.2,而split()
过滤器是在版本2.3.0中引入的。我的开发环境正在运行2.4.1。希望我们可以纠结Github上的好人,让他们更新他们的Liquid版本。 :)
答案 1 :(得分:3)
过滤器(例如拆分)只能在{{outputs}}上使用,而不能在{%tags%}上使用。
您可以使用捕获功能完成拆分,如下所示: {%capture'foo'%} {{post.content |拆分:''}} {%endcapture%}