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

Jekyll Liquid如何条件引入_includes文件,替换<is_post_layout>实现布局判断

方案1:直接判断页面使用的布局(实现最简单)

将<is_post_layout>替换为page.layout == "post_layout"即可,修改后_layouts/default.html对应代码为:

<html>
  <head>
    {% if page.layout == "post_layout" %}
      {% include post_metadata.html %}
    {% endif %}
  </head>
  <body>
    {{ content }}
  </body>
</html>

原理是Jekyll内置的page.layout变量会存储当前页面声明使用的布局名称,当页面使用post_layout时条件成立,就会自动引入对应的资源片段。

方案2:子布局加自定义标记(扩展性更好)

如果后续有多个布局都需要引入post_metadata.html,用判断布局名的方式需要频繁修改条件,更灵活的实现方式是给需要加载对应片段的布局加自定义标记:

  1. 先修改_layouts/post_layout.html,在前言区域新增自定义字段:
---
layout: default
load_post_metadata: true
---
<article>
  {{ content }}
</article>
  1. 将<is_post_layout>替换为layout.load_post_metadata即可,修改后default.html对应代码为:
{% if layout.load_post_metadata %}
  {% include post_metadata.html %}
{% endif %}

后续其他布局需要加载同一段资源时,只需要在对应布局的前言里加load_post_metadata: true即可,无需修改default布局的判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:39:01