检测Jekyll中是否包含文件

时间:2014-05-04 09:49:13

标签: jekyll liquid

在我的帖子中,我有时会包含相同的HTML模式。 为此,我在pattern.html中创建了_includes/并将其包含在我的帖子中:

{% include pattern.html %}

我想在我的header中添加一个CSS文件(或任何其他代码),并且仅当pattern.html已在我的帖子中使用时。要把它放在伪代码中,我想得到以下layouts/default.html

<!doctype html>
<html>
   <head>
      {% if pattern.html is included in the post %} code here {% endif %}
   </head>
   <body>
      {{ content }}
   </body>
</html>

我已经尝试在pattern.html中分配变量并在我的布局中对其进行测试,但这种分配发生得太晚了:布局已经处理完毕。我知道我可以通过YALM传递变量,但我的目标是摆脱它。我宁愿不使用插件来做到这一点。

1 个答案:

答案 0 :(得分:3)

似乎问这个问题帮我解答了! 您可以使用Liquid contains来查找帖子中的模式。

例如,如果包含的pattern.html包含特定的代码段(例如<!--pattern-->或任何特定的HTML),您可以在脑海中使用:

<!doctype html>
<html>
   <head>
      {% if content contains "<!--pattern-->" %} code here {% endif %}
   </head>
   <body>
  {{ content }}
  </body>
</html>

这可用于任何HTML模式。例如,如果要仅在页面中有代码时调用CSS文件生成语法着色,请使用:

<!doctype html>
<html>
   <head>
      {% if content contains "<code>" %}
          <link rel="stylesheet" href="code.css">
      {% endif %}
   </head>
   <body>
  {{ content }}
  </body>
</html>