这可能是一个简单的问题,但如何在默认页面上显示我的帖子的预览?我正在使用Jekyll Bootstrap主题Tom。
答案 0 :(得分:47)
查看函数here,我找到了strip_html和truncatewords。
这是一个包含75个预览文字的“帖子列表”示例。
<ul >
{% for post in site.posts limit 4 %}
<li><span>{{ post.date | date_to_string }}</span> » <a href="{{ BASE_PATH }}{{ post.url }}">{{ post.title }}</a></li>
{{ post.content | strip_html | truncatewords:75}}<br>
<a href="{{ post.url }}">Read more...</a><br><br>
{% endfor %}
</ul>
答案 1 :(得分:44)
这至少在1.0.0
起作用,内置并易于使用。
<ul>
{% for post in site.posts %}
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
<p>{{ post.excerpt }}</p>
</li>
{% endfor %}
</ul>
请参阅here。
答案 2 :(得分:14)
我喜欢WordPress的<!--more-->
评论方法,所以我写了一些东西:
module More
def more(input, type)
if input.include? "<!--more-->"
if type == "excerpt"
input.split("<!--more-->").first
elsif type == "remaining"
input.split("<!--more-->").last
else
input
end
else
input
end
end
end
Liquid::Template.register_filter(More)
您的帖子将如下所示:
---
layout: post
title: "Your post title"
published: true
---
<p>This is the excerpt.</p>
<!--more-->
<p>This is the remainder of the post.</p>
然后您可以在模板中使用它,如下所示:
<!--more-->
评论之上的所有内容):<summary>{{ post.content | more: "excerpt" }}</summary>
<!--more-->
评论后的所有内容):<article>{{ post.content | more: "remaining" }}</article>
excerpt
或remaining
以外的任何参数都只会显示整个帖子。
答案 3 :(得分:1)
这是一个老问题,仍然希望为格式化问题添加一个解决方法,如@ Talon876的答案here中所提到的。
在每篇帖子的末尾添加像</em>,</strong> or </b>
这样的结束标记可能不那么整洁,但它会在显示摘录时保持格式化。
例如:
<ul >
{% for post in site.posts limit 4 %}
<li><span>{{ post.date | date_to_string }}</span> » <a href="{{ BASE_PATH }}{{ post.url }}">{{ post.title }}</a></li>
{{ post.content | strip_html | truncatewords:75}}
</em></strong> <!-- This is what does the task-->
<br>
<a href="{{ post.url }}">Read more...</a><br><br>
{% endfor %}
</ul>