液体警告:液体语法错误:预期的end_of_string但在中找到了id

时间:2016-08-19 14:05:00

标签: syntax liquid

我正在使用这行代码

<img data-animate="zoomIn" srcset="{{ 'device1.png' | asset_path | magick:resize:549x395 magick:quality:100 }} 1024w, {{ 'device1.png' | asset_path | magick:resize:280x201magick:quality:100 }} 640w" src="{{ 'device1.png' | asset_path | magick:resize:549x395 magick:quality:100 }}" alt="Mac" style="width: 100%; top: 0; left: 0;">

但我得到像这样的液体错误

  

液体警告:液体语法错误:找到了预期的end_of_string   我在&#34; {{&#39; device1.png&#39; | asset_path | magick:调整大小:549x395   magick:质量

你能用正确的语法帮助我吗?

提前致谢。 卡洛斯·维埃拉

3 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。似乎液体的新版本并不期望管道。我能够通过完全移除管道来解决它。这是我的问题:

错误:{% for post in site.posts | limit: 5 %}

修正:{% for post in site.posts limit: 5 %}

此页面可能有助于使用正确的液体语法http://jekyll.tips/jekyll-cheat-sheet/

答案 1 :(得分:0)

正确的答案是:

首先使用这个插件:

    require "jekyll-assets"

class Jekyll::ImagePath < Jekyll::Assets::Liquid::Tag

  def initialize(tag, args, tokens)
    super("img", args, tokens)
  end

  private
  def build_html(args, sprockets, asset, path = get_path(sprockets, asset))
      path
  end

end

Liquid::Template.register_tag('image_path', Jekyll::ImagePath)

然后在图像使用

src="{% image_path 'customize-template-image.png' magick:resize: 549x375 magick:quality:100 %}"

这肯定会确定

答案 2 :(得分:0)

我今天遇到了类似的问题,其代码如下:

{%- if title_case contains ' ' -%}
  {%- assign all_strings = title_case | split: ' ' -%}
  {%- assign the_string = '' -%}
  {%- for str in all_strings -%}
      {% assign new_string = str | capitalize %}
  {% assign the_string = the_string | append: new_string | append: ' ' %}
  {%- endfor -%}
  {%- assign title_case = the_string | strip-%}
{%- endif -%}
{{ title _case }}

问题是单词'title_case'中有一个多余的空格-因为它是一个空格,后跟一个下划线,Shopify将其解释为id!