在Jekyll发布没有标题

时间:2012-04-28 22:53:30

标签: ruby jekyll

在我的Jekyll博客中,我想要一些帖子没有标题。我如何修改Jekyll代码库以使帖子不需要标题?

3 个答案:

答案 0 :(得分:8)

您无需更改jekyll代码库即可删除标题。这可以使用不同的布局和适当的液体过滤器和标签来完成。

对于单个帖子页面,只需制作一个没有{{ page.title }}液体标签的新布局文件(例如“_layouts / no-title-post.html”)。在_posts源文件中,设置YAML前端内容以调用它。例如:

---
layout: no-title-post
---

请注意,YAML前言中不需要“title:”。如果jekyll需要它,该值将自动从文件名创建。例如,“_ postts / 2012-04-29-a-new-post.md”会自动将其标题变量设置为“新帖子”。如果您的模板没有调用标题标签,则无关紧要。你可以在前面的内容中包含一个“标题:”,但它根本就不会显示出来。

您还可以在列表/索引页面中显示没有标题的页面。检查帖子布局以确定是否应显示标题。例如,要在您的所有网页上显示标题除了具有“无标题帖子”布局的标题,您可以执行以下操作:

{% for post in paginator.posts %}
    {% if post.layout != 'no-title-post' %}
    <h1><a href="{{ post.url }}">{{ post.title }}</a></h1>
    {% endif %}

    <div class="postContent">
    {{ post.content }}
    </div>
{% endfor %}

在这种情况下,也会删除指向页面本身的链接。如果页面需要可寻址,则必须在其他位置添加链接。

答案 1 :(得分:3)

在所有Jekyll 3案例中,

edemundo 的解决方案不再有效。

我默认使用空标题:

defaults:
  -
    scope:
      type: "posts"
    values:
      layout: "post"
      title: ""

然后,您可以将标题与布局中的空字符串进行比较,例如:

{% if post.title == "" %}
    {{ post.content | strip_html | truncatewords:5 }}
{% else %}
    {{ post.title }}
{% endif %}

如果您喜欢自动生成标题,可以将其用作前置词:

---
title: ""
---

答案 2 :(得分:1)

我有同样的疑问,然后我偶然发现了这个非常简单的解决方案:

{% if post.title %}
    <h1><a href="{{ post.url }}">{{ post.title }}</a></h1>
{% endif %}

然后在帖子文件本身中,您将title变量留空:

---
layout: post
title:      
---

这样,如果标题为空,则不会打印h1。我发现这种方法对于引号类型特别有用,比如引号,大多数时候它都没有标题。