3

我正在尝试将 Jekyll 帖子的内容拆分为单词,并尝试了以下方法:

{% for word in post.content | split:' ' %}
    {% do some stuff %}
{% endfor %}

不幸的是,这没有任何作用。'word' 最终成为整个帖子。我在 Github Pages 上使用这个代码,所以很遗憾我无法编写插件来处理这个问题。我是否错误地使用了拆分过滤器?Liquid 是否支持我正在尝试做的事情?

4

2 回答 2

10

似乎您可以使用split: .

因此,您可以尝试以下操作:

{% capture words %}{{ post.content | split:  }}{% endcapture %}

或者:

{% assign words = post.content | split:  %}

从我到目前为止的测试来看,您似乎应该使用后者(分配标签),因为在将值分配给变量时,捕获标签似乎对数组元素进行了隐式连接。

使用:

{% 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 版本。:)

于 2012-10-28T15:40:36.460 回答
3

过滤器(例如拆分)只能用于 {{ 输出 }} 而不能用于 {% tags %}。

您也许可以通过使用以下捕获函数来完成拆分: {% capture 'foo' %} {{ post.content | 拆分:''}} {% endcapture %}

于 2012-09-03T19:44:10.370 回答