组织文件
Nextra 首先从 pages
目录中收集所有你的 Markdown 文件和配置,
然后生成整个站点的“页面地图信息”,用于渲染以下内容,例如 navigation bar_ 和 sidebar :
默认行为
默认情况下,将映射所有包含 .md
和 .mdx
文件名以及目录结构,按字母顺序排序。
然后,Nextra 将使用 title (opens in a new tab) 包从文件名中获取格式化的页面名称。
例如,如果你有以下结构:
- contact.md
- index.mdx
- legal.md
- index.mdx
已解析的页面地图将是(请注意,所有名称都按字母顺序排序):
[
{
"name": "About",
"children": [{ "name": "Index" }, { "name": "Legal" }]
},
{ "name": "Contact" },
{ "name": "Index" }
]
全局页面地图将由 Nextra 打包到每个页面中。然后,配置的主题将使用该页面地图渲染实际的用户界面。
_meta.json
通常,自定义每个页面的标题非常常见,而不仅仅依赖于文件名。 将页面命名为 "Index" 缺乏清晰度。最好分配一个有意义的标题,准确代表内容,例如 "Home"。
这就是 _meta.json
的作用所在。你可以在每个目录中拥有一个 _meta.json
文件,它将用于覆盖每个页面的默认配置:
- _meta.json
- contact.md
- index.mdx
- _meta.json
- legal.md
- index.mdx
你可以把它放在你的 pages/_meta.json
文件中:
pages/_meta.json
{
"index": "My Homepage",
"contact": "Contact Us",
"about": "About Us"
}
它告诉 Nextra 每个页面的顺序和正确的标题。或者,你也可以使用 title
进行设置,并在其中添加其他配置:
pages/_meta.json
{
"index": "My Homepage",
"contact": "Contact Us",
"about": {
"title": "About Us",
"...其他配置...": "..."
}
}
额外的配置被传递给 主题 作为额外的信息。查看相应页面获取更多信息: