If statement 在Jekyll中有条件地添加数据属性

If statement 在Jekyll中有条件地添加数据属性,if-statement,yaml,jekyll,liquid,yaml-front-matter,If Statement,Yaml,Jekyll,Liquid,Yaml Front Matter,我的博客帖子的基本YAML前端内容如下: layout: post title: 'Crepes' permalink: /crepes/ src: '/assets/images/crepes.jpg' date: 2018-05-24 21:41:00 origin: http//... ingredients: - ingredient1: amount - ingredient2: amount 以下是显示条目的my

我的博客帖子的基本YAML前端内容如下:

   layout: post
   title:  'Crepes'
   permalink: /crepes/
   src: '/assets/images/crepes.jpg' 
   date:   2018-05-24 21:41:00
   origin: http//...
   ingredients: 
    - ingredient1: amount
    - ingredient2: amount 
以下是显示条目的my index.html:

<ul>
{% for post in site.posts %}

<li data-title='{{ post.title }}' data-origin="{{ post.origin }}"
    data-src="{{ post.src | prepend: relative_url}}" 
    data-content='{ "ingredients": {{ post.ingredients | jsonify }} }'>

    <a href="{{ site.baseurl }}{{ post.url }}">
        <img src="{{ post.src | prepend: relative_url }}" alt={{ post.title }}/>
    </a>

</li>
{% endfor %}
</ul>
有没有办法在html标签中使用它?在我的情况下,我希望这样:

 {% for post in site.posts %}

 <li  
     {% if post.origin has value %}
         data-origin="{{ post.origin }}"
     {% endif %}">      
</li>
{% endfor %}
{%for site.posts%}

这里我看到四个案例:

  • post.origin
    不在前面:
    post.origin==null
  • post.origin
    出现在前面,但未设置(
    post.origin:
    ) =>post.origin==null`
  • post.origin
    出现在前面,但设置为空字符串(
    post.origin:
    ) =>
    post.origin==“”
  • post.origin
    出现在前面,并设置为有效字符串(
    post.origin:“toto”
    ) =>
    post.origin==“toto”
结果与实验相符

在此基础上,使用,我们可以建立如下条件:

<li
  {% if post.origin and post.origin != "" %}
     data-origin="{{ post.origin }}"{% endif %}>
</li>
  • 请注意,
    post.origin
    表示
    post.origin!=空

    <li
      {% if post.origin and post.origin != "" %}
         data-origin="{{ post.origin }}"{% endif %}>
    </li>