是否可以更改布局,以便生成一组markdown格式的文件?
我有一个来自图书馆目录的作者列表,我想继续编辑他们,为每个作者制作一个单独的页面。所以我想首先为每个记录生成一个标记模板,然后我将逐个继续编辑它们。
发布于 2021-05-29 14:18:48
您可以使用Eleventy和templating来生成各种文件类型,包括Markdown。基本上,如果您有文本并希望使用模板语言来生成它,Eleventy可以做到这一点。
例如,假设您有一个包含水果名称的global data file。这也可以是一个对象数组,但为了简单起见,我们暂时只使用名称。在您的例子中,这可以是每个作者的对象数组。
// _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!`在这个模板中,我们使用pagination为fruits数组(paging global data)中的每个项目创建单独的页面。我们定义一个permalink来输出.md文件,文件的其余部分只是普通的Markdown,并添加了模板标记。您可以使用所有常规可用的Nunjucks/其他模板标记,例如循环、宏或继承。
您可以扩展这些想法以生成其他内容,如Javascript文件、JSON文件、YAML文件、XML或任何文本文件。没有什么能阻止您将非HTML的东西模板化。
上述模板的输出为:
---
layout: content
---
# About Apples
Apples are _very_ **delicious**.
`Buy Apples here!`https://stackoverflow.com/questions/66689894
复制相似问题