【问题标题】:Is there a way to split text on whitespace in Liquid?有没有办法在 Liquid 中的空白处分割文本?
【发布时间】:2012-08-20 18:37:02
【问题描述】:

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

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

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

【问题讨论】:

    标签: templates jekyll liquid


    【解决方案1】:

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

    您也许可以使用以下捕获功能完成拆分: {% 捕获'foo' %} {{ post.content |拆分:' ' }} {% endcapture %}

    【讨论】:

      【解决方案2】:

      您似乎可以使用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 版本。 :)

      【讨论】:

        猜你喜欢
        • 2021-02-01
        • 1970-01-01
        • 2022-09-28
        • 2022-01-02
        • 1970-01-01
        • 2021-07-25
        • 1970-01-01
        • 2021-10-15
        • 2021-09-24
        相关资源
        最近更新 更多