46

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

在主页上,将列出我最近的 10 篇文章。

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

我只熟悉将 Jekyll 用于基本模板,因此我可以只在页面中放置一个变量,也可以包含整个帖子。

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

4

5 回答 5

86

类似的东西{{ post.content | strip_html | truncatewords: 50 }}会产生更一致的摘录。它获取前 50 个单词并去除任何格式。

于 2014-05-06T21:07:06.843 回答
55

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

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

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

于 2013-10-16T08:31:18.473 回答
2

利用

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

而不是{{ post.excerpt }}or {{ post.content }}

这将提供长度一致的无格式文本块,其中没有原始降价内容。整齐的。


感谢@karolis-ramanauskas的评论,我将其作为正确的答案,以便获得更好的可见性。

于 2020-04-09T10:09:23.887 回答
2

要为每个帖子获取自定义长度摘录,您可以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.

于 2019-10-23T07:27:49.603 回答
0

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

于 2020-10-18T11:21:11.487 回答