首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Eleventy不会向从嵌套index.md文件生成的索引文件添加html后缀

Eleventy是一个静态网站生成器,它可以帮助开发者快速构建高性能的静态网站。在Eleventy中,通过配置文件可以指定生成网站的规则和选项。

对于不会向从嵌套index.md文件生成的索引文件添加html后缀的问题,可以通过Eleventy的配置文件进行解决。在配置文件中,可以使用插件或自定义过滤器来修改生成文件的命名规则。

一种解决方法是使用Eleventy的插件eleventy-plugin-navigation。该插件可以帮助生成导航结构,并且可以自定义生成文件的命名规则。具体使用方法如下:

  1. 首先,安装eleventy-plugin-navigation插件:
代码语言:txt
复制
npm install eleventy-plugin-navigation --save-dev
  1. 在Eleventy的配置文件(通常是.eleventy.js.eleventy.config.js)中引入插件并进行配置:
代码语言:txt
复制
const pluginNavigation = require("eleventy-plugin-navigation");

module.exports = function(eleventyConfig) {
  eleventyConfig.addPlugin(pluginNavigation, {
    // 配置导航结构
    navigation: {
      index: {
        sortBy: "title",
        permalink: "/{{ page.fileSlug }}/",
        title: "Index"
      }
    },
    // 配置文件命名规则
    permalink: {
      index: "/{{ page.fileSlug }}/index.html"
    }
  });
};

在上述配置中,navigation选项用于配置导航结构,permalink选项用于配置文件命名规则。通过设置permalink选项中的index属性,可以指定从嵌套的index.md文件生成的索引文件的命名规则为index.html

  1. 运行Eleventy生成网站:
代码语言:txt
复制
npx eleventy

生成的索引文件将会带有.html后缀。

除了使用插件,还可以通过自定义过滤器来修改生成文件的命名规则。具体方法如下:

  1. 在Eleventy的配置文件中定义一个自定义过滤器:
代码语言:txt
复制
module.exports = function(eleventyConfig) {
  eleventyConfig.addFilter("addHtmlExtension", function(value) {
    if (value.endsWith("/index")) {
      return value + ".html";
    }
    return value;
  });
};

在上述代码中,定义了一个名为addHtmlExtension的过滤器,用于给文件名添加.html后缀。

  1. 在模板文件中使用自定义过滤器:
代码语言:txt
复制
<a href="{{ page.url | addHtmlExtension }}">{{ page.data.title }}</a>

在上述代码中,通过addHtmlExtension过滤器给链接的URL添加.html后缀。

通过以上方法,可以解决Eleventy不会向从嵌套index.md文件生成的索引文件添加.html后缀的问题。这样生成的索引文件将会带有.html后缀,符合网站的命名规则。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券