Jekyll - 在帖子布局中更改_config.yml变量

时间:2014-10-17 19:37:21

标签: jekyll

config.yml我有:

...

showheader: "yes"

在我的default.html模板中,我有条件显示标题包括:

<!DOCTYPE html>
<html>
  {% include head.html %}
  <body>
    {% if site.showheader == "yes" %}{% include header.html %}{% endif %}
    <main class="page-main">
      {{ content }}
    </main>
    {% include footer.html %}
 </body>
</html>

在我的post.html模板中,我不想展示header.html所以我试试这个:

---
layout: default
---
{{ site.showheader = "no" }}
<article class="post">
  <header class="post-header">
    <h1 class="post-h1" href="{{ post.url | prepend: site.baseurl }}">{{ page.title }}</h1>
    <p class="post-meta">{{ page.date | date: "%b %-d, %Y" }}{% if page.author %} • {{ page.author }}{% endif %}{% if page.meta %} • {{ page.meta }}{% endif %}</p>
  </header>
  <p class="post-p">{{ content }}</p>
  <footer class="post-footer">
    <p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | prepend: site.baseurl }}">via RSS</a></p>
  </footer>
</article>

但它很简单,不起作用,也没有返回错误。 Jekyll可以在_config.yml模板布局中更改post.html中变量集的值吗?

1 个答案:

答案 0 :(得分:1)

您似乎无法重新分配site.variable值。如果在{% assign site.showheader = false %}中设置了showheader: true,则_config.yml无效。

如果你想根据你所在的页面显示标题,只需在页面前面设置变量。

在index.html中:

---
showheader: true
layout: default
---

在帖子中:

---
showheader: false
layout: default
---

在_layouts / default.html

{% if page.showheader == true %}
    header
{% endif %}