【问题标题】:How can I get a post excerpt in Jekyll?如何在 Jekyll 中获得帖子摘录?
【发布时间】:2013-10-23 17:50:08
【问题描述】:

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

在主页上,将列出我最近的 10 个帖子。

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

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

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

【问题讨论】:

标签: text web blogs jekyll


【解决方案1】:

{{ post.content | strip_html | truncatewords: 50 }} 之类的内容会产生更一致的摘录。它获取前 50 个单词并去除所有格式。

【讨论】:

  • 同意。这要好得多。我曾经使用摘录,它会给出关于它在哪里中断的各种怪癖(似乎只在第一段)。
  • 你会如何处理链接?例如,如果您有这样的内容“这是一个帖子。还有一个 [链接](www.link.com)”,那么您发布的 sn-p 将显示整个原始文本,而不是智能地显示它以文本形式链接。
  • 得到答案,使用 {{ post.content |降价 | strip_html |截断字数:50 }}
  • 如何获取 post.content 但没有 post.title?我不想在帖子摘录中显示标题。
  • 你好,我发现这句话只能用英文,当我想写一篇中文文章时,如何使用这个功能?谢谢!
【解决方案2】:

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

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

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

【讨论】:

  • 记得在实际帖子中使用<!--more--> 告诉 Jekyll 它应该在哪里“剪切”帖子的摘录内容或在您的_config.yml 中全局设置 excerpt_separator。
【解决方案3】:

要为每个帖子获取自定义长度摘录,您可以在帖子的前面添加一个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

【讨论】:

    【解决方案4】:

    使用

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

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

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


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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-19
        • 1970-01-01
        相关资源
        最近更新 更多