如何使用Jekyll在索引页面上显示帖子摘要?

时间:2013-03-19 10:41:24

标签: html markdown jekyll

我正在使用Jekyll按照这个优秀的tutorial来创建博客。我想在索引页面上添加一个帖子摘要。我尝试使用:

  

post.content |截断词:50 | strip_html

它有效,但它会显示整个帖子,直到达到50个字数。这也包括标题。我想简要总结帖子的实际内容。我如何构建我的帖子来做到这一点?

4 个答案:

答案 0 :(得分:34)

2015年11月16日更新

现在Jekyll支持摘录分隔符,在模板中你可以这样做:

{% if post.excerpt %}
    {{ post.excerpt }}
{% endif %}

并在全局配置_config.yml中,您可以设置:

excerpt_separator: <!--more-->

<!--more--> html评论标记一样使用。

旧答案

你可以试试这个:

{% if post.content contains '<!--more-->' %}
  {{ post.content | split:'<!--more-->' | first }}
{% else %}
  {{ post.content }}
{% endif %}

并在摘要后的文章中添加<!--more-->标记,就像Wordpress一样。

答案 1 :(得分:4)

使用YAML front matter并为每个帖子定义一个单独的标题,如下所示:

---
title: Efficient smuflet based kwoxel trees
---

Post content goes here.

然后您可以根据需要使用或不使用post.title

或者,如果您想为每个帖子编写单独的摘要(不仅仅是前n个字符),只需在前面的内容中添加该摘要的字段。

答案 2 :(得分:4)

来自Jekyll文档:

  

每个帖子自动获取第一个文本块,从内容的开头到第一次出现的excerpt_separator,并将其设置为post.excerpt。

     

...

     

因为Jekyll抓住了第一段,你不需要将摘录包装在p标签中,这已经为你做了。

有关详情和示例,请参阅http://jekyllrb.com/docs/posts/#post-excerpts

答案 3 :(得分:3)

{{ post.excerpt }}文件中使用index.md获取此帖子的摘录。