我正在使用Jekyll创建一个新博客。
在主页面上,我会列出最近10篇帖子。
此列表中的条目将包括标题,发布日期和摘录,很可能是第一段。
我只熟悉使用Jekyll作为基本模板,因此我可以在页面中只放置一个变量,或者包含整个帖子。
有没有办法避免在分页器中使用post.content
,并且只包括我定义的帖子中的某个点(例如``{%endexcerpt%}`?
答案 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的所有更改都需要重新启动才能生效