有没有一种方法可以在Liquid中分割空白处的文本



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

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

不幸的是,这没有任何作用单词"最终成为整篇文章。我在Github页面上使用这段代码,所以不幸的是,我无法编写一个插件来处理这件事。我是否错误地使用了拆分过滤器?Liquid支持我尝试做的事情吗?

似乎可以使用split: 来分割空白。

所以你可以试试这样的东西:

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

或:

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

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

使用:

{% for post in site.posts limit:1 offset:6 %}
  {% assign words = post.content | split:  %}
  {% for word in words %}{{ word }} {% endfor %}
{% endfor %}

似乎完整地再现了帖子内容。内部for循环中的空白很重要。

现在需要注意的是,如果您需要用空格将一些单词重新连接在一起,那么join标记似乎需要在字符周围加引号,比如:join:' '

编辑:

我最终也尝试对空白进行一些拆分,虽然它在我的开发环境中有效,但在Github页面上却不起作用。看起来Pages运行的是2.2.2版本,而split()过滤器是在2.3.0版本中引入的。我的开发环境是运行2.4.1。希望我们能在Github上纠缠那些优秀的人,让他们更新他们的Liquid版本。:)

筛选器(如拆分)只能用于{{output}},而不能用于{%tags%}。

您可以使用以下捕获功能来完成拆分:{%capture"foo"%}{post.content|split:"}}{%endcapture%}

最新更新