为 Eleventy 配置文章摘要

| 1 min read

在 Eleventy 中,Markdown 文件通常会在头部对文章设置一些属性,Eleventy 会先通过 gray-matter 这个包来解析这块内容,将文件的头部的属性设置和正文内容分开。

简单来说,这个包的功能就是把如下格式的内容:

---
title: 这是文章标题
---


这是文章内容。

转换为下面这样的对象:

{
data: {
title: '这是文章标题',
},
content: '这是文章内容。',
}

我们可以在 .eleventy 配置文件中使用 setFrontMatterParsingOptions 方法对这个包进行配置,通过配置这个包,就可以实现内容摘要的功能。

// .eleventy.js
module.exports = function(eleventyConfig) {
eleventyConfig.setFrontMatterParsingOptions({
excerpt: true,
// 可选, 默认为 "---"
excerpt_separator: "<!-- excerpt -->"
})
}

excerpt 属性表示是否启用摘要功能,excerpt_separator 属性表示摘要内容和正文内容的分割记号。按照上面的配置,我们可以在 Markdown 中这样写:

---
title: 这是文章标题
---


这段文本将会作为摘要。

<!-- excerpt -->

从这里开始是正文内容。

配置完成后,在 njk 模板文件中读取文章内容时,通过 page.excerpt 属性即可获取到摘要内容。

关于配置摘要的其他详细内容请参见 官方文档