Jekyll Github 页面如何隐藏帖子

问题描述 投票:0回答:5

我的网站使用 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 时,帖子在家庭中将不可见。不幸的是,这不起作用,你有什么提示吗?谢谢

html post github jekyll github-pages
5个回答
48
投票

这对我有用:

---
layout: post
title: About Lumen
published: false
---

See [About]({{ site.baseurl }}/about)

15
投票

如果您想从分页中排除帖子/页面,您可以将

hidden: true
添加到 YAML frontmatter。 https://github.com/jekyll/jekyll-paginate/issues/6


7
投票

尝试将您的前言从

visible:1
更改为
visible: 1

我只是尝试在我的机器上重现你的示例,我发现 Jekyll 似乎对前面的空白很挑剔。

有了

visible: 1
,你的例子对我有用。

使用

visible:1
,Jekyll 在构建网站时输出以下错误消息:

YAML 异常读取 C:/foo/bar.md: (): 在第 5 行第 1 列扫描简单键时找不到预期的 ':'

...但它仍然完成构建并且生成的网站可以工作,只是帖子不可见。


0
投票

您需要修改

_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

0
投票

其他答案对我不起作用,除非我编辑了我想避免的 HTML 文件。对我有用的就是简单地将

_
添加到 markdown 文件的名称中。

例如,我有一篇帖子的标题如下:

2023-05-02-yoga.md

我将其重命名为:

_2023-05-02-yoga.md

帖子不再显示了。

© www.soinside.com 2019 - 2024. All rights reserved.