39

这可能是一个简单的问题,但是如何在默认页面上显示我的帖子的预览?我正在使用 Jekyll Bootstrap 主题 Tom。

4

4 回答 4

49

这至少从 开始也有效1.0.0,内置并且易于使用。

<ul>
  {% for post in site.posts %}
    <li>
      <a href="{{ post.url }}">{{ post.title }}</a>
      <p>{{ post.excerpt }}</p>
    </li>
  {% endfor %}
</ul>

这里

于 2013-05-23T07:46:10.217 回答
48

浏览这里的函数,我发现了 strip_html 和 truncatewords。

这是一个包含 75 个单词的预览文本的示例“帖子列表”。

<ul >
    {% for post in site.posts limit 4 %}
    <li><span>{{ post.date | date_to_string }}</span> &raquo; <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>
于 2012-06-15T03:43:58.880 回答
14

我喜欢<!--more-->WordPress 的评论方法,所以我按照这些思路写了一些东西:

_plugins/more.rb:

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除了or之外的任何论点remaining都将简单地显示整个帖子。

于 2012-11-14T18:01:35.413 回答
1

这是一个老问题,仍然想为格式化问题添加一个解决方法,正如@Talon876 的回答here中所提出的那样。

在每篇文章的末尾添加关闭标签</em>,</strong> or </b>可能不那么整洁,但它在显示摘录时保持格式。

例如:

<ul >
    {% for post in site.posts limit 4 %}
    <li><span>{{ post.date | date_to_string }}</span> &raquo; <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>
于 2015-02-22T20:12:01.120 回答