我的网站使用 jekyll 和 Github 页面。 我正在尝试使一些帖子在家庭中不可见,但可以从另一个帖子链接它们。 在 frontmatter 中,我尝试添加一个像这样可见的字段:
---
layout: post
title:
excerpt:
visible:1
---
然后在index.html文件中我做了一个if检查:
<div class="posts">
{% for post in paginator.posts %}
{% if post.visible== 1 %}
<div class="post">
<h1>
<a href="{{ post.url }}">
{{ post.title }}
</a>
</h1>
<span class="post-date">{{ post.date | date_to_string }}</span>
<a class="subtitle" href="{{ post.url }}">
{{ post.excerpt }}
</a>
</a>
</div>
{% endif %}
{% endfor %}
</div>
这个想法是,当我在可见字段中设置 0 时,帖子在家庭中将不可见。不幸的是,这不起作用,你有什么提示吗?谢谢
这对我有用:
---
layout: post
title: About Lumen
published: false
---
See [About]({{ site.baseurl }}/about)
如果您想从分页中排除帖子/页面,您可以将
hidden: true
添加到 YAML frontmatter。 https://github.com/jekyll/jekyll-paginate/issues/6
尝试将您的前言从
visible:1
更改为 visible: 1
。
我只是尝试在我的机器上重现你的示例,我发现 Jekyll 似乎对前面的空白很挑剔。
有了
visible: 1
,你的例子对我有用。
使用
visible:1
,Jekyll 在构建网站时输出以下错误消息:
YAML 异常读取 C:/foo/bar.md: (): 在第 5 行第 1 列扫描简单键时找不到预期的 ':'
...但它仍然完成构建并且生成的网站可以工作,只是帖子不可见。
您需要修改
_layout/home.html
文件(在您的情况下,可能是 index.html
文件)。
尝试使用
if-endif
语句,像这样:
{%- for post in site.posts -%}
{% if post.hide == null or post.hide == false %}
<li>
{%- assign date_format = site.minima.date_format | default: "%b %-d, %Y" -%}
<span class="post-meta">{{ post.date | date: date_format }}</span>
<h3>
<a class="post-link" href="{{ post.url | relative_url }}">
{{ post.title | escape }}
</a>
</h3>
</li>
{% endif %}
{%- endfor -%}
然后,隐藏
hide: true
的帖子。例如:
published: true
title: Some title
layout: post
hide: true
其他答案对我不起作用,除非我编辑了我想避免的 HTML 文件。对我有用的就是简单地将
_
添加到 markdown 文件的名称中。
例如,我有一篇帖子的标题如下:
2023-05-02-yoga.md
我将其重命名为:
_2023-05-02-yoga.md
帖子不再显示了。