我正在使用Jekyll创建一个新博客。
在主页上,将列出我最近的 10 篇文章。
此列表中的条目将包括标题、发布日期和摘录,很可能是第一段。
我只熟悉将 Jekyll 用于基本模板,因此我可以只在页面中放置一个变量,也可以包含整个帖子。
有没有办法避免post.content
在分页器中使用,并且只在帖子中包含我定义的某个点(例如“{% endexcerpt %}”?
类似的东西{{ post.content | strip_html | truncatewords: 50 }}
会产生更一致的摘录。它获取前 50 个单词并去除任何格式。
当然,您可以使用{{ post.excerpt }}
.{{ post.content }}
如果您不喜欢它们,也可以手动覆盖自动生成的摘录。
关于如何在此处执行此操作的完整文档:http: //jekyllrb.com/docs/posts/#post-excerpts
利用
{{ post.content | markdownify | strip_html | truncatewords: 50 }}
而不是{{ post.excerpt }}
or {{ post.content }}
。
这将提供长度一致的无格式文本块,其中没有原始降价内容。整齐的。
感谢@karolis-ramanauskas的评论,我将其作为正确的答案,以便获得更好的可见性。
要为每个帖子获取自定义长度摘录,您可以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
.
对我有用的是:将其添加到 config.yml :excerpt_separator: "<!--more-->" #global excerpt separator for the blog posts
并记住重新启动 jekyll 本地服务器。对 config.yml 的所有更改都需要重新启动才能生效