docusaurus.config.js
配置
有关示例,请参阅“入门”中的 配置。
概述
docusaurus.config.js
文件包含了网站的配置,它位于你网站的根目录中。
如果你的道格龙(Docusaurus)代码库使用了 TypeScript,那么你的配置文件可能会被命名为 docusaurus.config.ts
。其语法与 js
配置文件基本相同,只是增加了类型定义。你可以在 道格龙(Docusaurus)官网 上查看一个实际的例子。
此文件 在 Node.js 环境中运行,并且应当导出一个网站配置对象,或一个创建该对象的函数。
docusaurus.config.js
文件支持:
示例:
export default {
title: 'Docusaurus',
url: 'https://docusaurus.io',
// 你的站点配置...
};
export default async function createConfigAsync() {
return {
title: 'Docusaurus',
url: 'https://docusaurus.io',
// 你的站点配置...
};
}
关于更详尽的示例和解释,请参阅 声明 docusaurus.config.js
的语法。
必填字段
title
- 类型:
string
你网站的标题。它将用于元数据(metadata)和浏览器标签页标题。
export default {
title: 'Docusaurus',
};
url
- 类型:
string
你网站的 URL。这也可以被视作顶级域名。例如,https://facebook.github.io/metro/
的 URL 是 https://facebook.github.io
,而 https://docusaurus.io
的 URL 是 https://docusaurus.io
。此字段与 baseUrl
字段相关。
export default {
url: 'https://docusaurus.io',
};
baseUrl
- 类型:
string
你网站的根路径(Base URL)。可以将其看作是域名后面的路径部分。例如,/metro/
是 https://facebook.github.io/metro/
的根路径。对于没有路径的 URL,baseUrl
应设置为 /
。此字段与 url
字段相关。它应该总是在开头和结尾都带上斜杠。
export default {
baseUrl: '/',
};
可选字段
favicon
- 类型:
string | undefined
你网站图标(favicon)的路径;必须是一个可以用于链接 href
属性的 URL。例如,如果你的图标位于 static/img/favicon.ico
:
export default {
favicon: '/img/favicon.ico',
};
trailingSlash
- 类型:
boolean | undefined
允许自定义 URL/链接末尾是否带有斜杠,以及静态 HTML 文件的生成方式:
undefined
(默认):保持 URL 不变,并为/docs/myDoc.md
生成/docs/myDoc/index.html
true
:为 URL/链接添加末尾斜杠,并为/docs/myDoc.md
生成/docs/myDoc/index.html
false
:从 URL/链接中移除末尾斜杠,并为/docs/myDoc.md
生成/docs/myDoc.html
每个静态托管服务商提供静态文件的方式都不同(这种行为甚至可能随时间改变)。
请参考 部署指南 和 slorber/trailing-slash-guide 来选择合适的设置。
i18n
- 类型:
Object
用于本地化你的网站的 i18n 配置对象。
示例:
export default {
i18n: {
defaultLocale: 'en',
locales: ['en', 'fa'],
path: 'i18n',
localeConfigs: {
en: {
label: 'English',
direction: 'ltr',
htmlLang: 'en-US',
calendar: 'gregory',
path: 'en',
},
fa: {
label: 'فارسی',
direction: 'rtl',
htmlLang: 'fa-IR',
calendar: 'persian',
path: 'fa',
},
},
},
};
defaultLocale
:该语言环境 (1) 其名称不会出现在根 URL 中 (2) 在不带--locale
选项的情况下通过docusaurus start
启动 (3) 将用于<link hrefLang="x-default">
标签。locales
:在你的网站上部署的语言环境列表。必须包含defaultLocale
。path
:所有语言环境文件夹的根目录,路径可以是绝对路径,也可以是相对于配置文件的相对路径。默认为i18n
。localeConfigs
:每个语言环境的单独选项。label
:此语言环境在语言下拉菜单中显示的标签。direction
:ltr
(默认) 或rtl
(用于从右到左书写的语言,如波斯语、阿拉伯语、希伯来语等)。用于选择语言环境的 CSS 和 HTML meta 属性。htmlLang
:用于<html lang="...">
(或任何其他 DOM 标签名) 和<link ... hreflang="...">
的 BCP 47 语言标签。calendar
:用于计算日期的日历。请注意,它不控制实际显示的字符串:MM/DD/YYYY
和DD/MM/YYYY
都是gregory
历法。要选择格式 (DD/MM/YYYY
或MM/DD/YYYY
),请将你的语言环境名称设置为en-GB
或en-US
(en
意味着en-US
)。path
:此语言环境的所有插件本地化文件夹的根目录。将相对于i18n.path
进行解析。默认为语言环境的名称。注意:这对语言环境的baseUrl
没有影响——自定义根 URL 的功能仍在开发中。
future
- 类型:
Object
future
配置对象允许你选择性地启用即将推出、不稳定或实验性的,尚未完全成熟的道格龙(Docusaurus)功能。
它也是一种让你提前采纳下一主要版本中即将到来的重大变更的方式,从而使你能够在停留在当前版本的同时,为下一个版本做好准备。Remix Future Flags 这篇博文 极好地解释了这一理念。
以 experimental_
或 unstable_
为前缀的功能可能会在 次要版本 中发生变化,并且不被视为语义化版本(Semantic Versioning)的重大变更。
以 v<MajorVersion>
(v6
v7
等) 为命名空间的功能是未来标志,预计在下一个主要版本中会默认开启。这些功能发生变化的可能性较小,但我们保留了这样做的可能性。
future
API 的重大变更应该易于处理,并将在次要/主要版本的博文中进行说明。
示例:
export default {
future: {
v4: {
removeLegacyPostBuildHeadAttribute: true,
useCssCascadeLayers: true,
},
experimental_faster: {
swcJsLoader: true,
swcJsMinimizer: true,
swcHtmlMinimizer: true,
lightningCssMinimizer: true,
rspackBundler: true,
rspackPersistentCache: true,
ssgWorkerThreads: true,
mdxCrossCompilerCache: true,
},
experimental_storage: {
type: 'localStorage',
namespace: true,
},
experimental_router: 'hash',
},
};
v4
:允许你选择性启用即将到来的道格龙(Docusaurus)v4 版本的重大变更和功能,以便提前为这个新版本准备好你的网站。使用true
作为快捷方式可以启用所有标志。removeLegacyPostBuildHeadAttribute
:移除旧版的plugin.postBuild({head})
API,该 API 阻止了我们应用有用的 SSG 优化(解释)。useCssCascadeLayers
:这将启用 道 格龙(Docusaurus)CSS 级联层插件,并使用我们计划为道格龙(Docusaurus)v4 默认应用的预配置层。
experimental_faster
:一个包含功能标志的对象,旨在使道格龙(Docusaurus)的构建速度更快。这需要在你的网站依赖中添加@docusaurus/faster
包。使用true
作为快捷方式可以启用所有标志。在 Docusaurus Faster 问题中有更多信息。可用的功能标志:swcJsLoader
:使用 SWC 来转译 JS(替代 Babel)。swcJsMinimizer
:使用 SWC 来压缩 JS(替代 Terser)。swcHtmlMinimizer
:使用 SWC 来压缩 HTML 和内联的 JS/CSS(替代 html-minifier-terser)。lightningCssMinimizer
:使用 Lightning CSS 来压缩 CSS(替代 cssnano 和 clean-css)。rspackBundler
:使用 Rspack 来打包你的应用(替代 webpack)。rspackPersistentCache
:使用 Rspack 持久化缓存 来在后续构建中更快地重新构建你的应用。需要rspackBundler: true
。需要在重新构建之间持久化./node_modules/.cache
。mdxCrossCompilerCache
:为浏览器/Node.js 环境编译 MDX 文件时只编译一次,而不是两次。ssgWorkerThreads
:使用 Node.js 工作线程池来更快地执行静态站点生成阶段。需要开启future.v4.removeLegacyPostBuildHeadAttribute
。
experimental_storage
:主题作者应努力遵循的全站浏览器存储选项。type
:主题作者应使用的浏览器存储类型。可能的值是localStorage
和sessionStorage
。默认为localStorage
。namespace
:是否为浏览器存储键添加命名空间,以避免当多个道格龙(Docusaurus)网站托管在同一域名下或本地主机上时发生存储键冲突。可能的值是string | boolean
。命名空间会附加到存储键的末尾,格式为key-namespace
。使用true
可根据你的网站url + baseUrl
自动生成一个随机命名空间。默认为false
(无命名空间,历史行为)。
experimental_router
:要使用的路由器类型。可能的值是browser
和hash
。默认为browser
。hash
路由器仅在极少数情况下有用,例如当你希望退出静态站点生成,拥有一个完全客户端的应用,且只有一个index.html
入口文件时。这对于将道格龙(Docusaurus)网站作为.zip
归档文件分发,并且无需运行 Web 服务器即可在本地浏览非常有用。
noIndex
- 类型:
boolean
此选项会向每个页面添加 <meta name="robots" content="noindex, nofollow">
标签,以告知搜索引擎不要索引你的网站(更多信息请参见此处)。
示例:
export default {
noIndex: true, // 默认为 `false`
};
onBrokenLinks
- 类型:
'ignore' | 'log' | 'warn' | 'throw'
当道格龙(Docusaurus)检测到任何损坏的链接时的行为。
默认情况下,它会抛出一个错误,以确保你永远不会发布任何损坏的链接。
损坏链接检测仅在生产构建(docusaurus build
)时可用。
onBrokenAnchors
- 类型:
'ignore' | 'log' | 'warn' | 'throw'
当道格龙(Docusaurus)检测到任何使用道格龙(Docusaurus)的 Heading
组件声明的损坏锚点时的行为。
默认情况下,它会打印一条警告,让你知道你的锚点已损坏。
onBrokenMarkdownLinks
- 类型:
'ignore' | 'log' | 'warn' | 'throw'
当道格龙(Docusaurus)检测到任何损坏的 Markdown 链接时的行为。
默认情况下,它会打印一条警告,让你知道你的 Markdown 链接已损坏。
onDuplicateRoutes
- 类型:
'ignore' | 'log' | 'warn' | 'throw'
当道格龙(Docusaurus)检测到任何重复路由