You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jekyll中为HTML标签条件添加data-origin属性

问题:在Liquid模板中为HTML标签条件添加data-origin属性

我懂你现在在处理Jekyll文章列表模板时遇到的小困扰:部分文章的origin字段是空的(只写了origin:),你希望只有当这个字段有实际值的时候,才给<li>标签加上data-origin属性,而且想直接在标签内部用Liquid的条件语法实现,对吧?

当然可以这么做!Liquid完全支持在HTML标签的属性位置嵌入条件判断逻辑,你想要的写法几乎是正确的,只需要微调一下条件判断的规则,就能精准识别origin是否有有效值。

给你整理好的最终可用代码:

{% for post in site.posts %}
  <li 
    data-title='{{ post.title }}' 
    {% if post.origin != blank %}data-origin="{{ post.origin }}"{% endif %}
    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 %}

逻辑说明:

这里用{% if post.origin != blank %}作为判断条件——当你在YAML Front Matter里只写origin:时,这个变量在Liquid中会被识别为blank(空值),这个条件就能精准过滤掉这类情况,只有当origin有实际内容时,才会输出data-origin属性。

如果你的场景中存在部分文章根本没定义origin字段的情况,也可以直接用{% if post.origin %}来判断,它会同时处理“字段未定义”和“字段为空”两种情况。不过根据你的描述,所有文章都有origin字段(哪怕是空的),所以!= blank的判断会更贴合你的需求。

内容的提问来源于stack exchange,提问作者IP_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:20:36