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является зарезервированным свойством и явно влияет на вывод отрисовки. Удаление строки из файла устранило проблему.

Другие вопросы по тегам