Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Eleventy站点如何显示目录中的页面列表?_Javascript_Node.js_Static Site - Fatal编程技术网

Javascript Eleventy站点如何显示目录中的页面列表?

Javascript Eleventy站点如何显示目录中的页面列表?,javascript,node.js,static-site,Javascript,Node.js,Static Site,我正在建立一个新网站,我遇到了一个小小的障碍。我的页面被组织成子目录。我希望每个目录的索引页列出该目录中的所有页面 例如: |--section1 | |--index.njk // this should list /section1/page1/, /section2/page2/, etc. | |--page1.md | |--page2.md | --(etc...) |--section2 | |--index.njk // this should list /secti

我正在建立一个新网站,我遇到了一个小小的障碍。我的页面被组织成子目录。我希望每个目录的索引页列出该目录中的所有页面

例如:

|--section1
|  |--index.njk // this should list /section1/page1/, /section2/page2/, etc.
|  |--page1.md
|  |--page2.md
|   --(etc...)
|--section2
|  |--index.njk // this should list /section2/page1/, etc.
|  |--page1.md
|   --(etc..)
看起来Eleventy通过其特性提供了类似的功能。然而,集合似乎只使用标记中提供的数据

我可以通过在每个
page.md
的前面指定
标记:[“section1”]
来获得所需的输出。然而,这意味着需要维护更多的冗余元数据

看起来我还可以使用
eleventyConfig.addCollection
函数生成所需的集合,该函数将对
collections.all()
进行排序,并根据它们的
outputPath
返回它们。但这让我感觉很不舒服,我想知道是否有更优雅的解决方案

理想情况下,我希望能够在我的
index.njk
模板中放置类似的内容:

{%- for page in directory -%}
{# do stuff #}
{%- endfor -%}
或许

{%- for page in collections.directory -%}
{# do stuff #}
{%- endfor -%}
有什么我遗漏的吗?

我发现了

您可以添加一个标记,并将目录名添加为标记

例如,
section1/section1.json
将包含:

{
    "tags": ["Section 1"]
}
这将应用于该目录中的所有页面。但是,在各个页面中指定的任何标记都将覆盖它。您必须启用该功能以合并目录和页面标记。只需添加
eleventyConfig.setDataDeepMerge(true)
到您的
.eleventy.js
配置文件

文档说明,在未来版本中,默认情况下将启用此功能。在撰写本文时,它仍然只是选择性加入