使用插件
The Docusaurus core doesn't provide any feature of its own. All features are delegated to individual plugins: the docs feature provided by the docs plugin; the blog feature provided by the blog plugin; or individual pages provided by the pages plugin. 如果没有安装插件,站点就不会包含任何路径。
但是,你可能不需要一个一个地安装常用插件:它们可以作为预设的一部分被打包分发。 对于大多数用户来说,插件是通过预设选项来配置的。
我们有一份官方插件列表,而社区也开发了一些非官方插件。 如果你想要添加任何功能:自动生成文档页面、执行自定义脚本、整合其他服务……记得翻翻那个列表:有人可能已经帮你实现好了!
如 果你觉得自己很有精力,你也可以阅读插件指南或插件方法总览了解如何自己制作插件。
安装插件
插件通常为 npm 软件包,所以你可以像其他 npm 包一样安装。
- npm
- Yarn
- pnpm
npm install --save docusaurus-plugin-name
yarn add docusaurus-plugin-name
pnpm add docusaurus-plugin-name
然后,你需要把它添加到站点 docusaurus.config.js
的 plugins
选项:
export default {
// ...
plugins: ['@docusaurus/plugin-content-pages'],
};
Docusaurus 也可以从你的本地目录加载插件,只需要像这样填写:
export default {
// ...
plugins: ['./src/plugins/docusaurus-local-plugin'],
};
路径需要是绝对的,或者相对于配置文件。
配置插件
最简单的插件用法就是提供插件名称或插件路径。
如果要声明选项,需要在配置里把名称和配置对象放在一个二元组中。 这种风格通常被称作 Babel 风格。
export default {
// ...
plugins: [
[
'@docusaurus/plugin-xxx',
{
/* 选项 */
},
],
],
};
示例:
export default {
plugins: [
// Basic usage.
'@docusaurus/plugin-debug',
// 包含选项对象(Babel 风格)
[
'@docusaurus/plugin-sitemap',
{
changefreq: 'weekly',
},
],
],
};
多实例插件及插件 ID
所有的 Docusaurus 内容插件都可支持多个插件实例。 比如,可以有多个文档插件实例或多个博客。 每个插件实例都需要分配一个唯一的 ID。插件 ID 默认为 default
。
export default {
plugins: [
[
'@docusaurus/plugin-content-docs',
{
id: 'docs-1',
// other options
},
],
[
'@docusaurus/plugin-content-docs',
{
id: 'docs-2',
// other options
},
],
],
};
最多可以有一个插件实例被作为「默认实例」。你可以通过省略 id
属性或使用 id: 'default'
来将其设为默认。
使用主题
主题和插件的加载方式完全相同。 从使用者的角度,themes
和 plugins
字段在安装和配置插件时可以互换。 唯一的细微差别是主题会在插件之后加载,并且主题可以覆盖插件的默认主题组件。
themes
和 plugins
选项会导致不同的简写解析模式,所以如果你想要利用简写,请务必使用正确的选项!
export default {
// ...
themes: ['@docusaurus/theme-classic', '@docusaurus/theme-live-codeblock'],
};
使用预设
预设是插件及主题的合集。 比如,你不一定需要在配置文件中挨个注册并配置 @docusaurus/plugin-content-docs
、@docusaurus/plugin-content-blog
等插件。我们提供了 @docusaurus/preset-classic
预设,允许你在一个地方集中配置它们。
@docusaurus/preset-classic
用 create-docusaurus
新建的 Docusaurus 网站默认自带经典预设。 它包含了下列主题和插件:
@docusaurus/theme-classic
@docusaurus/theme-search-algolia
@docusaurus/plugin-content-docs
@docusaurus/plugin-content-blog
@docusaurus/plugin-content-pages
@docusaurus/plugin-debug
@docusaurus/plugin-google-gtag
@docusaurus/plugin-google-tag-manager
@docusaurus/plugin-google-analytics
(deprecated)@docusaurus/plugin-sitemap
经典预设会把每个配置项目转发给相应的插件/主题。
export default {
presets: [
[
'@docusaurus/preset-classic',
{
// Debug defaults to true in dev, false in prod
debug: undefined,
// Will be passed to @docusaurus/theme-classic.
theme: {
customCss: ['./src/css/custom.css'],
},
// Will be passed to @docusaurus/plugin-content-docs (false to disable)
docs: {},
// Will be passed to @docusaurus/plugin-content-blog (false to disable)
blog: {},
// Will be passed to @docusaurus/plugin-content-pages (false to disable)
pages: {},
// Will be passed to @docusaurus/plugin-sitemap (false to disable)
sitemap: {},
// Will be passed to @docusaurus/plugin-google-gtag (only enabled when explicitly specified)
gtag: {},
// Will be passed to @docusaurus/plugin-google-tag-manager (only enabled when explicitly specified)
googleTagManager: {},
// DEPRECATED: Will be passed to @docusaurus/plugin-google-analytics (only enabled when explicitly specified)
googleAnalytics: {},
},
],
],
};
安装预设
预设通常是一个 npm 包,所以你可以像其他包一样通过 npm 安装。
- npm
- Yarn
- pnpm
npm install --save @docusaurus/preset-classic
yarn add @docusaurus/preset-classic
pnpm add @docusaurus/preset-classic
然后,将其添加到网站的 docusaurus.config.js
中的 presets
选项:
export default {
// ...
presets: ['@docusaurus/preset-classic'],
};
预设路径可以是相对于配置文件的:
export default {
// ...
presets: ['./src/presets/docusaurus-local-preset'],
};