如何显示帖子的预览?(使用Jekyll引导主题)

如何显示帖子的预览?(使用Jekyll引导主题),jekyll,Jekyll,这可能是一个简单的问题,但如何在默认页面上显示我的文章预览?我使用的是Jekyll引导主题Tom。通过查看函数,我找到了strip_html和truncatewords 下面是一个“帖子列表”示例,包含75个单词的预览文本 <ul > {% for post in site.posts limit 4 %} <li><span>{{ post.date | date_to_string }}</span> &raquo; &

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

通过查看函数,我找到了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>
    {site.posts中的post限制为4%}
  • {{post.date | date_to_string}}» {{post.content | strip | html | truncatewords:75}}


    {%endfor%}
我喜欢WordPress的
评论方法,所以我写了一些类似的东西:

_plugins/more.rb:
模块更多信息
def更多(输入,类型)
如果输入.include?""
如果类型==“摘录”
input.split(“”)。首先
elsif类型==“剩余”
input.split(“”)。last
其他的
输入
结束
其他的
输入
结束
结束
结束
液体::模板。注册过滤器(更多)
您的帖子将如下所示:

---
layout: post
title: "Your post title"
published: true
---
<p>This is the excerpt.</p>
<!--more-->
<p>This is the remainder of the post.</p>
---
布局:邮政
标题:“你的帖子标题”
出版:对
---
这是摘录

这是文章的其余部分

然后,您可以在模板中使用它,如下所示:

显示摘录(注释上方的所有内容):
{{post.content}更多:“摘录”}
显示余数(注释后的所有内容):
{{post.content}更多:“剩余”}

除了
摘录
剩余
之外的任何参数都将简单地显示整个帖子。

这至少在
1.0.0
中起作用,是内置的,并且使用简单

<ul>
  {% for post in site.posts %}
    <li>
      <a href="{{ post.url }}">{{ post.title }}</a>
      <p>{{ post.excerpt }}</p>
    </li>
  {% endfor %}
</ul>
    {site.posts%中的post为%s}
  • {{post.extract}}

  • {%endfor%}

请参阅。

这是一个老问题,仍然希望为@Talon876的答案中提出的格式问题添加一个解决方法

在每篇文章的末尾添加结束标记,如
、或
,可能不是很整洁,但它在显示摘录时保持了格式

例如:

<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>
    {site.posts中的post限制为4%}
  • {{post.date | date_to_string}}» {{post.content | strip | html | truncatewords:75}


    {%endfor%}

它不保留格式。所有内容都显示为纯文本。@mlt只需获取
strip\u html
away@woozyking这样做不安全。如果在75个单词截断时,你会出现在某个标记的中间(即“这个文本是粗体的和被截断的”),这个片段会使你得到一个标记错误。1.0似乎通过
post.extract
解决了这个问题,除了分隔符
。我相信jekyll现在使用的是
site.baseurl
而不是
BASE\u PATH
;“阅读更多…”链接中也缺少它。这已在Jekyll本身中实现:请参阅。
extract_separator
可以在
\u config.yml
文件中定义如下:
extract_separator:
这很可能是在最新版本的Jekyll中实现的。我可能错了,但在写这个原始答案时,这个功能不是内置的。
<article>{{ post.content | more: "remaining" }}</article>
<ul>
  {% for post in site.posts %}
    <li>
      <a href="{{ post.url }}">{{ post.title }}</a>
      <p>{{ post.excerpt }}</p>
    </li>
  {% endfor %}
</ul>
<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>