【发布时间】:2014-09-11 13:44:35
【问题描述】:
如何在 Jekyll 中隐藏页面?我有一个联系我们页面(作为 Google 文档表单),并且有一个响应页面。创建后,它在导航中显示为“联系我们”页面的子项,但我根本不希望它显示。
我目前在前面这样设置:
---
layout: page
title: Thanks
permalink: /contact/thanks/
---
【问题讨论】:
标签: jekyll
如何在 Jekyll 中隐藏页面?我有一个联系我们页面(作为 Google 文档表单),并且有一个响应页面。创建后,它在导航中显示为“联系我们”页面的子项,但我根本不希望它显示。
我目前在前面这样设置:
---
layout: page
title: Thanks
permalink: /contact/thanks/
---
【问题讨论】:
标签: jekyll
如果您没有在页面中放置任何标题,则它不会显示在导航栏中。类似的东西
---
layout: page
permalink: /contact/thanks/
---
【讨论】:
您可以“选择加入”以仅包含您确实希望包含在导航中的页面,而不是“选择退出”包含某些页面。如果您有大量页面,这很有用。
在您确实希望包含在导航中的每个页面的前面添加一个menu 变量:
---
layout: blog
title: Blog
menu: main
permalink: /blog/
---
然后在生成导航的位置添加 if 语句:
<ul>
{% for page in site.pages %}
{% if page.menu == 'main' %}
<li><a href="{{ page.url | prepend: site.baseurl }}">{{ page.title }}</a></li>
{% endif %}
{% endfor %}
</ul>
这可能在_layouts/default.html 或_includes/header.html。
感谢 David Jaquel 对这个问题的启发:Excluding page from Jekyll navigation bar
【讨论】:
只需在页面前端和导航栏中添加show_in_nav: false,执行:
<ul>
{% for p in pages %}
{% unless show_in_nav == false %}
<li><a href="{{ site.baseurl }}{{ p.url }}">{{ p.title }}</a></li>
{% endunless %}
{% endfor %}
</ul>
这将阻止您的页面出现在导航栏中。
【讨论】:
根据文档,在您的前端设置中已发布为 false:
---
layout: post
title: Blogging Like a Hacker
published: false
---
【讨论】:
published: false 有效。此外,title 不是 Jekyll 中的预定义变量(它的自定义),您的解决方案依赖于检查 title 是否存在于前面的问题({% for my_page in site.pages %} {% if my_page.title %})中,除非这是它在 GitHub 中的处理方式页面,并且无法更改。