有没有办法知道在Jekyll布局中加载了哪个子布局

有没有办法知道在Jekyll布局中加载了哪个子布局,jekyll,liquid,Jekyll,Liquid,我的Jekyll项目有以下布局文件: _layouts main.html post.html 在所有情况下,我都会加载main.html布局。如果请求的页面是post,我将使用{{content}将post.html布局嵌套在主页面中 是否可以(从主布局)知道是否已加载子布局?您可以使用前端事务条目进行此操作 --- layout: post.html sublayout = post.html --- 在page.html中,您可以检查{{page.sublayout}。{{pa

我的Jekyll项目有以下布局文件:

_layouts
  main.html
  post.html
在所有情况下,我都会加载
main.html
布局。如果请求的页面是post,我将使用
{{content}
post.html
布局嵌套在主页面中


是否可以(从主布局)知道是否已加载子布局?

您可以使用前端事务条目进行此操作

---
layout: post.html
sublayout = post.html
---

在page.html中,您可以检查{{page.sublayout}。{{page.layout本身}}将是外部模板中的main.html。

您可以使用Front matter条目

---
layout: post.html
sublayout = post.html
---

在page.html中,您可以检查{{page.sublayout}。{{page.layout本身}}将是外部模板中的main.html。

这正是我目前所做的,但我正在寻找一种更干净的方法。没有更干净的方法。但不知何故,我怀疑页面布局可能会出错。为什么您需要知道外部布局中的子布局?父布局应该完全独立于子布局,否则一开始就不太合适。我在
main.html
layout中创建了一个菜单。在这个菜单中,我需要知道我是否要在哪个页面上做一些简单的效果(比如改变指定菜单项的背景色)。在其他情况下(主页、联系人页面等),我可以依赖页面标题,但对于特定的帖子,页面标题是无用的。因此,我必须使用其他信息,如使用的子布局。您不能使用子布局,因为您可能有两个页面使用相同的子布局(您肯定会有多个页面使用相同的子布局,这就是布局的目的),所以使用额外的YAML前端(例如,
activeMenuItem:XXX
)是最干净的方式。谢谢!我会这样做。这正是我目前所做的,但我正在寻找一种更干净的方式。没有更干净的方式。但不知何故,我怀疑页面布局可能会出错。为什么你需要知道外部布局中的子布局?父布局应该完全独立于子布局,否则一开始就不太正确。我在
main.html
布局中创建了一个菜单。在这个菜单中,我需要知道我是否要在哪个页面上执行一些简单的效果(例如更改指定菜单项的背景色)。在其他情况下(主页、联系人页面等)我可以依赖页面标题,但对于特定的帖子,页面标题是无用的。因此我必须使用其他信息,如使用的子布局。您不能使用子布局,因为您可能有两个页面使用相同的子布局(您肯定会有多个页面使用相同的子布局,这就是布局的用途),因此,使用额外的YAML前端内容enty(例如,
activeMenuItem:XXX
)是最干净的方法。谢谢!我会这样做的。