Eleventy не добавляет суффикс html к индексным файлам, созданным из вложенного файла index.md
Eleventy не добавляет html
суффикс для индексации файлов, созданных из вложенного файла index.md.
Например, вот образец структуры каталогов с моим исходным контентом...
|
+- /src (input dir)
|
+- post
| |
| +- my-cool-post
| |
| +- /images
| |
| +- index.md
|
+- index.md
|
+- about.md
Когда я запускаю команду npx eleventy
Я получаю следующий результат...
|
+- /public (output dir)
|
+- post
| |
| +- my-cool-post
| |
| +- /images
| |
| +- index <---- NOTE there is no ".html" suffix on this file
|
+- index.html <----- this file is ok however
|
+- about.html <----- and so is this file
Вот как у меня .eleventy.js
конфигурационный файл setup..
// Data Extensions
const yaml = require("js-yaml");
module.exports = function (eleventyConfig) {
eleventyConfig.addPassthroughCopy("_assets");
eleventyConfig.addWatchTarget("./src/_sass/");
eleventyConfig.addDataExtension("yaml", contents => yaml.safeLoad(contents));
eleventyConfig.setTemplateFormats([
"md",
"css",
"jpg",
"png",
"webp",
"svg",
"html"
]);
return {
jsDataFileSuffix: ".11ty",
dataTemplateEngine: "njk",
htmlTemplateEngine: "njk",
markdownTemplateEngine: "njk",
passthroughFileCopy: true,
dir: {
input: "src",
data: "_data",
includes: "_includes",
layouts: "_layouts",
output: "public"
}
}
}
Без *.html
суффикс URL http://../post/my-cool-post
возвращает ошибку 404. Если я вручную добавлю*.html
суффикс тогда он работает.
Есть идеи, что не так с моей настройкой?
1 ответ
Я разобрался в проблеме. В приведенном выше примере файл был в/src/post/post.yaml
которые имели это значение:
permalink: "{{ page.filePathStem }}"
Причина, по которой у меня это было, заключалась в создании псевдонима permalink
которые я мог бы использовать в своих шаблонах вместо того, чтобы печатать {{ page.filePathStem }}
. Как оказывается,permalink
является зарезервированным свойством и явно влияет на вывод отрисовки. Удаление строки из файла устранило проблему.