在我的Jekyll博客中,我想要一些帖子没有标题。我如何修改Jekyll代码库以使帖子不需要标题?
答案 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)
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
。我发现这种方法对于引号类型特别有用,比如引号,大多数时候它都没有标题。