【发布时间】:2021-08-11 07:46:34
【问题描述】:
是否有可能以某种方式为 Eleventy 进行一般配置,以便输入文件夹中的“my_file.html”最终与 _site 文件夹中的“my_file.html”一样,而不是“/my_file/index.html”?
我知道我可以使用永久链接逐个文件地执行此操作。但如果可能的话,我希望它为整个站点配置。
【问题讨论】:
标签: eleventy
是否有可能以某种方式为 Eleventy 进行一般配置,以便输入文件夹中的“my_file.html”最终与 _site 文件夹中的“my_file.html”一样,而不是“/my_file/index.html”?
我知道我可以使用永久链接逐个文件地执行此操作。但如果可能的话,我希望它为整个站点配置。
【问题讨论】:
标签: eleventy
不幸的是,由于这种行为isn't encouraged,没有简单的配置选项来禁用目录输出。
但是,由于permalink 是data cascade 的一部分,您可以设置全局默认值,并结合filePathStem computed data,您可以将输出设置为.html 文件。
要使用全局数据文件设置permalink,请将permalink.js 文件添加到全局_data 目录中。
// _data/permalink.js
module.exports = '/{{ page.filePathStem }}.html'
还有一个配置全局数据选项coming soon to v1.0.0。我不确定它是否会处理{{ page.filePathStep }} 预处理,但如果可以,那也可能是一个选项,尤其是因为它将与配置相关的内容保留在配置文件中。
【讨论】:
permalink 字符串将被处理为模板文件的语法,因此全局使用字符串可能有点不确定。使用函数应该更安全。
是的,您可以通过在前面指定永久链接值来控制 Eleventy 将内容写出的位置。此处对此进行了介绍:https://www.11ty.dev/docs/permalinks/#remapping-output-(permalink)
一个例子是:
---
permalink: "/my_file.html"
---
【讨论】: