Skip to main content

配置

为什么存在配置文件

Docusaurus 对配置文件将站点信息集中到一处。通过调用API的方式决定页面的结构(如导航栏、页脚、Logo、插件配置等)。悉心维护的 docusaurus.config.js 能够让你在个性化站点的同时,帮助你注于文档本身。

观察默认的配置代码

我为你翻译和注释了这个文件。

const lightCodeTheme = require('prism-react-renderer/themes/github');   // 浅色代码插件-主题github
const darkCodeTheme = require('prism-react-renderer/themes/dracula'); // 深色主题插件

/** @type {import('@docusaurus/types').Config} */
const config = {
// 配置常量
title: 'My Site', // 网站的标题
tagline: 'Dinosaurs are cool', // 横幅副标题
url: 'https://your-docusaurus-test-site.com', // 当网站上线后的地址
baseUrl: '/', // 默认路径
onBrokenLinks: 'throw', // 处理损坏的链接方式-抛出
onBrokenMarkdownLinks: 'warn', // 处理损坏的md链接-警告
favicon: 'img/favicon.ico', // logo地址

// GitHub pages deployment config. Github Pages部署配置
// If you aren't using GitHub pages, you don't need these. 如果你不需要Github Pages,那么你不需要它
organizationName: 'facebook', // Usually your GitHub org/user name. Github用户名
projectName: 'docusaurus', // Usually your repo name. 仓库名

// Even if you don't use internalization, you can use this field to set useful
// metadata like html lang. For example, if your site is Chinese, you may want
// to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'zh-Hans', // 设置语言 zh-Hans是中文
locales: ['zh-Hans'],
},

presets: [
[
'classic', // 主题,默认
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
sidebarPath: require.resolve('./sidebars.js'),
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
// “编辑此页”地址
editUrl:
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
},
blog: {
showReadingTime: true,
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
// “编辑此页”地址
editUrl:
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
},
theme: {
customCss: require.resolve('./src/css/custom.css'),
},
}),
],
],

themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
navbar: {
title: 'My Site', // 导航栏文字
logo: {
alt: 'My Site Logo',
src: 'img/logo.svg', //导航栏LOGO
},
items: [
//导航栏选项
{
type: 'doc',
docId: 'intro',
position: 'left',
label: 'Tutorial',
},
{to: '/blog', label: 'Blog', position: 'left'},
{
href: 'https://github.com/facebook/docusaurus',
label: 'GitHub',
position: 'right',
},
],
},
footer: {
//页脚选项
style: 'dark',
links: [
{
title: 'Docs',
items: [
{
label: 'Tutorial',
to: '/docs/intro',
},
],
},
{
title: 'Community',
items: [
{
label: 'Stack Overflow',
href: 'https://stackoverflow.com/questions/tagged/docusaurus',
},
{
label: 'Discord',
href: 'https://discordapp.com/invite/docusaurus',
},
{
label: 'Twitter',
href: 'https://twitter.com/docusaurus',
},
],
},
{
title: 'More',
items: [
{
label: 'Blog',
to: '/blog',
},
{
label: 'GitHub',
href: 'https://github.com/facebook/docusaurus',
},
],
},
],
//底部版权声明,支持 html语法
copyright: `Copyright © ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`,
},
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
},
}),
};

module.exports = config;

必填 API

title

必填。网站标题。会用于页面元数据中,以及浏览器选项卡标题。
类型:String

module.exports = {
title: '我的网站',
};

他将在以下的界面生效。

1

url

必填。网站网址。 你可以把它看作是顶级主机名。 举个例子,<https://facebook.github.io/metro/> 的 URL 是 <https://facebook.github.io>,而 <https://docusaurus.io> 的 URL 就是它本身。 这个字段和 baseUrl 字段相关。
类型:string

module.exports = {
url: 'https://docusaurus.io',
};

baseUrl

站点的 base URL。 可以被看作是主机名后的路径。 比如,<https://facebook.github.io/metro/> 的 base URL 是 /metro/。 对于没有路径的网址,baseUrl 应设置为 /。 这个字段和 url 字段相关。 开头和末尾始终要包含斜杠。

module.exports = {
baseUrl: '/',
};
范例

在本条设置中,有以下的参考:

  • 如果最终发布在 Github Pages 个人主页 ,即你的仓库名为 你的Github ID.github.io ,而你的连接最终生成为:https://mysite.github.io,那么你的 baseUrl 应该设置为:baseUrl: '/'
  • 如果最终发布在 Github Pages ,即你的仓库名为 mysite ,而你的连接最终生成为:https://mysite.github.io/mysite/,那么你的 baseUrl 应该设置为:baseUrl: '/mysite/',
  • 如果最终发布在 Netlify ,而你的连接最终生成为: https://mysite.netlify.app ,那么你的 baseUrl 应该设置为:baseUrl: '/'

上述信息将在你设置后生效,不再赘述,参考官方API

选填 API

favicon

你的网站图标的路径;必须是可以用于链接 href 的 URL。 比如,如果你的图标位于 static/img/favicon.ico

module.exports = {
favicon: '/img/favicon.ico',
};

我们把这个图标设置为:
1

因此我们填写这个字段如下:

module.exports = {
favicon: 'https://jetzihan-img.oss-cn-beijing.aliyuncs.com/blog/coding.png',
};

它将在下面的地方生效:
2

i18n

用于对应你的语言,默认为 en 英文,中文为 zh-Hans

  i18n: {
defaultLocale: 'zh-Hans',
locales: ['zh-Hans'],
},

tagline

网站标语。

module.exports = {
tagline:
'欢迎你来到我的网站!~',
};

实现效果如下:
3

organizationName

你的 Github 用户名。

module.exports = {
// 比如我的用户名为 inannan423
organizationName: 'inannan423',
};

projectName

你的代码将放在哪个仓库。

module.exports = {
projectName: 'docusaurus',
};

themeConfig

主题配置对象,用于自定义网站中诸如导航栏和页脚的组件。使用下面的配置。

  themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
navbar: {
title: '我的网站',
logo: {
alt: 'My Site Logo',
src: 'https://jetzihan-img.oss-cn-beijing.aliyuncs.com/blog/coding.png',
},
items: [
{
type: 'doc',
docId: 'intro',
position: 'left',
label: '我的笔记',
},
{to: '/blog', label: '博客', position: 'left'},
{
href: 'https://github.com/facebook/docusaurus',
label: 'GitHub',
position: 'right',
},
],
},
footer: {
style: 'dark',
links: [
{
title: '文档',
items: [
{
label: '我的笔记',
to: '/docs/intro',
},
],
},
{
title: '社区',
items: [
{
label: 'Stack Overflow',
href: 'https://stackoverflow.com/questions/tagged/docusaurus',
},
{
label: 'Discord',
href: 'https://discordapp.com/invite/docusaurus',
},
{
label: 'Twitter',
href: 'https://twitter.com/docusaurus',
},
],
},
{
title: '更多',
items: [
{
label: 'Blog',
to: '/blog',
},
{
label: 'GitHub',
href: 'https://github.com/facebook/docusaurus',
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`,
},
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
},
}),

效果如下:
2
3

presets

用于填写 点击编辑 标签的链接地址。

  presets: [
[
'classic',
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
sidebarPath: require.resolve('./sidebars.js'),
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
},
blog: {
showReadingTime: true,
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
},
theme: {
customCss: require.resolve('./src/css/custom.css'),
},
}),
],
],