我怎样才能在杰基尔获得一个帖子摘录?

时间:2013-10-15 19:28:48

标签: text web blogs jekyll

我正在使用Jekyll创建一个新博客。

在主页面上,我会列出最近10篇帖子。

此列表中的条目将包括标题,发布日期和摘录,很可能是第一段。

我只熟悉使用Jekyll作为基本模板,因此我可以在页面中只放置一个变量,或者包含整个帖子。

有没有办法避免在分页器中使用post.content,并且只包括我定义的帖子中的某个点(例如``{%endexcerpt%}`?

5 个答案:

答案 0 :(得分:73)

{{ post.content | strip_html | truncatewords: 50 }}之类的内容会产生更加一致的摘录。它得到前50个单词并删除任何格式。

答案 1 :(得分:49)

当然,您可以使用{{ post.excerpt }}代替{{ post.content }}

如果您不喜欢,也可以手动覆盖自动生成的摘录。

有关如何执行此操作的完整文档: http://jekyllrb.com/docs/posts/#post-excerpts

答案 2 :(得分:0)

要获取每个帖子的自定义长度摘录,可以在帖子的开头添加一个excerpt_separator变量。如果将此变量设置为<!--end_excerpt-->,则post.excerpt将包含<!--end_excerpt-->之前的所有内容。

---
excerpt_separator: <!--end_excerpt-->
---

This is included in excerpts.

This is also included in excerpts.

<!--end_excerpt-->

But this is not.

要省去在每个帖子的开头添加excerpt_separator的麻烦,只需在_config.yml中进行设置即可。

答案 3 :(得分:0)

使用

 {{ post.content | markdownify | strip_html | truncatewords: 50 }}

代替{{ post.excerpt }}{{ post.content }}

这将给出长度一致的未格式化文本块,其中没有原始的降价内容。整洁。


感谢this comment@karolis-ramanauskas给出的答案,我已将其设为一个正确的答案,以使其具有更好的可视性。

答案 4 :(得分:0)

对我有用的是:将其添加到config.yml中:excerpt_separator: "<!--more-->" #global excerpt separator for the blog posts,并记住重新启动jekyll本地服务器。对config.yml的所有更改都需要重新启动才能生效