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

Aks*_*rma 19 html markdown jekyll

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

post.content | 截断词:50 | strip_html

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

Sam*_*Sam 34

2015年11月16日更新

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

{% if post.excerpt %}
    {{ post.excerpt }}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

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

excerpt_separator: <!--more-->
Run Code Online (Sandbox Code Playgroud)

<!--more-->html评论标签一样使用.

老答案

你可以试试这个:

{% if post.content contains '<!--more-->' %}
  {{ post.content | split:'<!--more-->' | first }}
{% else %}
  {{ post.content }}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

<!--more-->在摘要后在文章中添加标签,就像Wordpress一样.

  • 最好结合上述所有解决方案:{%else%} {{post.content | 截断词:50 | strip_html}} {%endif%} (2认同)

Rob*_*ann 5

来自 Jekyll 文档:

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

...

因为 Jekyll 会抓取第一段,所以您不需要将摘录包装在 p 标签中,这已经为您完成了。

请参阅http://jekyllrb.com/docs/posts/#post-excerpts了解更多信息和示例。


Jos*_*ein 4

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

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

Post content goes here.
Run Code Online (Sandbox Code Playgroud)

然后你可以post.title随意使用或不使用。

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