在 Front Matter 中的 Jekyll if 语句
Posted
技术标签:
【中文标题】在 Front Matter 中的 Jekyll if 语句【英文标题】:Jekyll if statement in Front Matter 【发布时间】:2018-06-25 01:49:22 【问题描述】:我想知道是否可以在 Front Matter 中添加 if 语句,以便根据 page.url
选择性地使用属性
页面是使用基本模板从插件虚拟生成的 .md 文件,因此如果可能,我需要在 Front Matter 中添加一些条件。
这是一个典型的 Front Matter
---
...
title: blah
description: blah blah
image: some-image.png
---
我想做以下事情:
---
...
title: blah
description: blah blah
% if page.url == "page1" %
image: page1-image.png
% else %
image: general-image.png
% endif %
---
【问题讨论】:
【参考方案1】:Jekyll 没有开箱即用地解析 Front Matter 中的 Liquid,但有一些插件可以为您解析 Front Matter 中的 Liquid。
也就是说,我认为您的用例可以在页面的“布局”本身内轻松解决..
% capture image %
% if page.url == "page1" %
page1-image.png
% else %
general-image.png
% endif %
% endcapture %
image | strip
【讨论】:
谢谢。capture
是一个内置的 Jekyll 命令,它可以从页面布局向 Front Matter 注入价值吗? image | strip
是做什么的?
capture
是一个块类型的原生 Liquid 标签,允许您将评估 Liquid 返回的字符串值存储在标签正文中。根据您缩进封闭的 Liquid 构造的方式,该字符串将包含空格。然后可以通过 strip
过滤器删除此空格。以上是关于在 Front Matter 中的 Jekyll if 语句的主要内容,如果未能解决你的问题,请参考以下文章
Jekyll 教程——Front Matter & YAML
Jekyll 教程——Front Matter & YAML