是否可以更改布局,以便eleventy生成一组markdown格式的文件?
我有一份图书馆目录中的作者列表,我想继续编辑它们,为每个作者制作一页。所以我想先为每条记录生成一个降价模板,然后我将继续逐一编辑这些模板。
您可以使用Eleventy和模板生成各种文件类型,包括Markdown。从本质上讲,如果您有文本并希望使用模板语言来生成它,Eleventy可以做到这一点。
例如,假设您有一个包含水果名称的全局数据文件。这也可以是一个对象数组,但为了简单起见,我们现在只使用名称。在您的案例中,这可能是每个作者的对象数组。
// _data/fruits.js
module.exports = [
'Apples',
'Bananas',
'Oranges',
'Pears',
]
你想为每种水果创建一个Markdown页面,并附上一点描述。在这个例子中,我将使用Nunjucks,但它可以适应Eleventy支持的任何模板语言。
在fruits.md.njk
中(名称无关紧要(:
---
pagination:
data: fruits
size: 1
alias: fruit
permalink: 'fruits/{{ fruit | slug }}.md'
---
--- {# We can even define front-matter that will appear in the output #}
layout: content
---
# About {{ fruit }}
{# Use whatever markdown syntax you want #}
{{ fruit }} are _very_ **delicious**.
`Buy {{ fruit }} here!`
在这个模板中,我们使用分页为fruits
数组中的每个项创建单独的页面(分页全局数据(。我们定义了一个permalink
来输出.md
文件,文件的其余部分只是普通的Markdown,添加了模板标记。您可以使用所有常规可用的Nunjucks/其他模板标记,如循环、宏或继承。
您可以扩展这些想法来生成其他东西,如Javascript文件、JSON文件、YAML文件、XML或任何纯文本文件。没有什么能阻止你对非HTML的东西进行模板化。
上述模板的输出为:
---
layout: content
---
# About Apples
Apples are _very_ **delicious**.
`Buy Apples here!`