8

我有 3 种不同的 _layouts。

  • post-link.html
  • post-article.html
  • post-photo.html

我可以在 index.html 上显示我的所有帖子,但它们都有相同的布局。我可以以某种方式在同一页面(index.html)上显示多个布局吗?

4

2 回答 2

20

一个页面只能有一个layout,但布局可以嵌套。

我有三个_layouts

  • master.html
  • 默认.html
  • post.html

master布局具有我想要的任何页面所需的所有基本结构。它看起来像这样:

<html>
  <head>
    <title>{{ page.title }}</title>
  </head>
  <body>
    {{ content }}
  </body>
</html>

default对大多数不是博客文章的页面使用布局。我确实page在页面的 YAML 前端内容中广泛使用了一些变量。布局看起来像这样:

---
layout: master
---
<h1>
  {{ page.title }}
  {% if page.subtitle %}<small>{{ page.subtitle }}</small>{% endif %}
</h1>
{% if page.description %}<p>{{ page.description }}</p>{% endif %}
{{ content }}

我使用页面post布局_posts。它看起来像这样:

---
layout: default
---
<p>Posted {{ page.date }}</p>
<ul>{% for tag in page.tags %}...{% endfor %}</ul>
{{ content }}

我写的每一篇博文,我都使用post布局,它们继承自所有三种布局。

如果您想拥有可重用标记的片段,那么我建议您使用 _includes.

于 2012-12-31T03:54:55.237 回答
2

一个页面只能有一个布局。您需要的是 _includes,您可以在要显示帖子的任何地方使用它。

于 2012-11-21T12:02:35.403 回答