24

我希望在索引页面上显示较长帖子或页面的简短文本摘录。我打算在 Front Matter 中使用一个自定义变量并抓住它,但后来我看到了过滤器.excerpt

我在Jekyll 文档中看到了一些名为{{ page.excerpt | markdownify }}“我如何在页面或帖子上标记降价以使用该过滤器”的内容?

编辑:还是 markdownify 会占用整个 .md 文档?

4

4 回答 4

79

Jekyll 有一个excerpt_separator适合你的选项。事情是这样的:

_config.yml

excerpt_separator: <!--more-->  # you can specify your own separator, of course.

在您的帖子中:

---
layout: post
title: Foo
---

This appears in your `index.html`

This appears, too.

<!--more-->

This doesn't appear. It is separated.

请注意,您必须准确键入<!--more-->,而不是<!--More--><!-- more -->

在你的index.html

<!-- Loop in you posts -->
{% for post in site.posts %}
  <!-- Here's the header -->
  <header>
    <h2 class="title"><a href="{{ post.url }}">{{ post.title }}</a></h2>
  </header>

  <!-- Your post's summary goes here -->
  <article>{{ post.excerpt }}</article> 
{% endfor %}

输出是这样的:

<header>
  <h2 class="title"><a href="Your post URL">Foo</a></h2>
</header>

<article>

This appears in your `index.html`

This appears, too.

</article>
于 2013-08-02T02:39:19.397 回答
14

在 post markdown 文件中,您需要首先设置您的摘录,这是我的一篇文章中的一个示例

layout: post
title: A developers toolkit
date: Friday 14 December, 2012
excerpt: What text editor to use? Sass or plain old CSS? What on earth is Compass? Command    line? I'm not touching that. Sound like you? Welcome, I was once like you and this is the guide I wish someone had given me.

然后在索引页面上调用标签

{{ post.excerpt }}

这应该会输出您在降价文件中写入的内容。很好很简单,为什么我喜欢 Jekyll。

于 2013-05-07T16:32:56.407 回答
2

不适用于 mu 或集合,jekyll 在遇到除了解析液体时会恐慌。我不知道这是为什么,它应该按照您的建议工作。

还有一种选择:

post.content 或我的情况是:blogX.content 并通过一些限制内容大小的文本过滤器粉碎它。

即:{{ blog.content | strip_html | 截断词:100 }}

于 2016-09-28T19:12:08.827 回答
1

截至参考, 84cfc1cef的 github 版本支持 per-post ,因此您必须添加对Gemfile的引用:excerpt_separator

gem 'jekyll', github: 'jekyll/jekyll', ref: '84cfc1ceff0474fd3eb3beb193ae59ae43694863'

并使用以下内容创建帖子YAML

---
title:  Post Excerpt Separator
excerpt_separator: "\n---\n"
---
于 2015-01-18T19:03:56.690 回答