我无法使目录级别的 Eleventy 数据文件 (*.11tydata.js) 工作

问题描述

我有一个基于 pug 布局文件、Markdown 模板文件的 Eleventy 项目,使用 Parcel V2 构建,然后由 browserSync 提供服务。一切正常。然而,为了整理我的文件,我想将我的页面文件放到一个 pages 文件夹中(很像其他一些主要框架——Nuxt、Next 等——这样做)。但在这种情况下,Eleventy 在 pages 文件夹中构建页面,如下所示:

页面/index.html 页面/子目录/index.html

这是我的文件夹结构的摘录:

src/
  assets/
  includes/
    layouts/
      base.pug
      home.pug
    partials/
      header.pug
  pages/
    pages.11tydata.js
    index.md
    subdirectory/
      index.md

这是我的 11data.js 文件内容

module.exports = {
  permalink: "{{page.filePathstem | replace('/pages/','/')}}.html",}

我希望这能从我的 URL 结构中省略页面部分。只有当我将 md 文件更改为 njk 文件时,它才有效!但不幸的是,这些文件中的降价部分不再处理。有没有人知道如何在目录级别更改我的 URL 结构,但仍然使用我心爱的 Markdown 文件前台?感谢您的帮助!

解决方法

我通过使用eleltyComputed 使其正常工作,我认为这种类型的动态设置可能需要它。这对我有用:

module.exports = {
  eleventyComputed: {
      permalink: data => { return data.page.filePathStem.replace('/pages/','/') + '.html' }
  }
}
,

.eleventy.js 中,我设置了 markdownTemplateEngine: 'njk'。那对我有用。但 Raymonds 解决方案也有效!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...