页面配置
在 Nextra 中,可以通过配置_meta.json
文件来配置站点和页面结构。在文档主题中,有一些额外的选项可用于进一步自定义它。
这些配置会影响主题的整体布局,尤其是导航栏和侧边栏。
页面
在pages
文件下创建以.mdx
后缀的文件,它是可以书写 markdown
语法和js
语法
侧边栏中显示的页面标题和顺序应在_meta.json
文件中配置为键值对。例如,如果您有以下文件结构:
- _meta.json
- index.mdx
- contact.mdx
- about.mdx
您可以通过_meta.json
文件定义页面在侧边栏中的显示方式
{
"index": "首页",
"contact": "联系我们",
"about": "关于"
}
文件夹
文件夹的配置方式与页面相同。例如:
- _meta.json
- index.mdx
- contact.mdx
- about.mdx
- _meta.json
- apple.mdx
- banana.mdx
顶级_meta.json
文件包含顶级页面和文件夹的元元素(导航栏名称):
{
"index": "首页",
"contact": "联系我们",
"about": "关于"
"fruits": "水果"
}
同理,嵌套的_meta.json
文件包含同一文件夹中页面的元信息:
{
"apple": "苹果",
"banana": "香蕉"
}
这样,页面的信息就被分组到目录中。您可以移动目录而无需更改_meta.json
文件。
外部链接
在导航菜单中添加外部链接,通过设置_meta.json
中的href
属性
{
"github_link": {
"title": "SimpleLife", // 设置菜单名
"href": "https://github.com/SimpleLifecst/nextra-template"
}
}
要始终在新窗口中打开链接,请启用newWindow:true
选项:
{
"github_link": {
"title": "SimpleLife",
"href": "https://github.com/SimpleLifecst/nextra-template",
"newWindow": true
}
}
隐藏菜单
默认情况下,pages
下的 MDX 文件页面都将显示在菜单栏上,如果你需要隐藏一个特殊的菜单,你可以在_meta.json
设置"display":"hidden"
{
"index": "首页",
"contact": {
"display": "hidden"
},
"about": "关于"
}
该页面仍然可以通过/contact
URL 访问,但不会显示在侧边栏中。
导航栏
子文档
配置_meta.json
中"type":"page"
属性,它将在导航栏上显示为特殊页面,而不是侧边栏。使用此功能,您可以拥有多个“子文档”,以及始终可见的特殊页面或链接,例如“关于”。
在您的顶级_meta.json
文件中,您可以将所有内容设置为页面,而不是普通的侧边栏项目:
{
"index": {
"title": "Home",
"type": "page"
},
"about": {
"title": "About",
"type": "page"
}
}
它的效果像这样:
菜单
配置"type":"menu"
设置为菜单,通过配置items
来添加到导航栏的子项中 :
{
"company": {
"title": "Company",
"type": "menu",
"items": {
"about": "关于"
"contact": "联系我们"
}
}
}
链接
与外部链接配置相同,您也可以在导航栏中配置外部链接:
{
"contact": {
"title": "Contact Us",
"type": "page",
"href": "https://example.com/contact",
"newWindow": true
}
}
后备预案
在上面的子文档示例中,我们必须为每个页面定义"type":"page"
选项。为了方便起见,您可以使用*
键来定义此文件夹中所有项目的后备配置:
{
"*": {
"type": "page"
},
"index": "首页",
"about": "关于"
}
当所有项目都设置了"type":"page"
时,它们是等效的。
分隔符
您可以使用占位符"type":"separator"
在侧边栏菜单之间创建分隔线:
{
"index": "首页",
"---": {
"type": "separator"
},
"about": "关于"
}
高级
主题组件
您可以使用theme
属性为每个页面配置主题。例如,您可以禁用或启用特定页面的特定组件:
breadcrumb
页面面包屑、footer
底部版权信息、sidebar
侧边栏、toc
右侧目录、pagination
翻页功能
{
"index": {
"title": "首页",
"theme": {
"breadcrumb": false,
"footer": false,
"sidebar": false,
"toc": true,
"pagination": false
}
}
}
如果设置的是文件夹,所有子页面都将继承此属性。
布局
默认情况下,每个页面在其主题配置中都有"layout":"default"
这是默认行为。
原始布局
默认情况下,Nextra 会为 MDX 内容提供样式(如 h1、h2、h3 等),设置布局"layout":"raw"
,您可以使用最原始的布局,Nextra 不会额外注入样式,这样您可以更好的设计页面。
{
"index": {
"title": "首页",
"theme": {
"layout": "raw"
}
}
}
完全布局
您可能希望渲染一些具有完全容器宽度和高度的页面(将去掉目录右侧栏),这将但保留所有其他样式。您可以配置"layout":"full"
来做到这一点:
{
"index": {
"title": "首页",
"theme": {
"layout": "full"
}
}
}
排版
typesetting
控制排版细节,如字体特征、标题样式以及li
和code
等组件。文档主题中有default
和article
两种排版。
默认值适用于大多数情况,如留档,但您可以使用article
排版使其看起来像一个优雅的文章页面:
{
"about": {
"title": "关于",
"theme": {
"typesetting": "article"
}
}
}