Skip to main content
Version: 3.7.0

📦 插件内容文档

提供文档功能,并且是Docusaurus的默认文档插件。

安装

npm install --save @docusaurus/plugin-content-docs
tip

如果你使用预设的@docusaurus/preset-classic,你不需要将此插件作为依赖项安装。

你可以通过预设选项来配置此插件。

配置

接受的字段:

NameTypeDefaultDescription
pathstring'docs'Path to the docs content directory on the file system, relative to site directory.
editUrlstring | EditUrlFunctionundefinedBase URL to edit your site. The final URL is computed by editUrl + relativeDocPath. Using a function allows more nuanced control for each file. Omitting this variable entirely will disable edit links.
editLocalizedFilesbooleanfalseThe edit URL will target the localized file, instead of the original unlocalized file. Ignored when editUrl is a function.
editCurrentVersionbooleanfalseThe edit URL will always target the current version doc instead of older versions. Ignored when editUrl is a function.
routeBasePathstring'docs'URL route for the docs section of your site. DO NOT include a trailing slash. Use / for shipping docs without base path.
tagsBasePathstring'tags'URL route for the tags list page of your site. It is prepended to the routeBasePath.
includestring[]['**/*.{md,mdx}']Array of glob patterns matching Markdown files to be built, relative to the content path.
excludestring[]See example configurationArray of glob patterns matching Markdown files to be excluded. Serves as refinement based on the include option.
sidebarPathfalse | stringundefinedPath to a sidebars configuration file, loaded in a Node.js context. Use false to disable sidebars, or undefined to create a fully autogenerated sidebar.
sidebarCollapsiblebooleantrueWhether sidebar categories are collapsible by default. See also Collapsible categories
sidebarCollapsedbooleantrueWhether sidebar categories are collapsed by default. See also Expanded categories by default
sidebarItemsGeneratorSidebarGeneratorOmittedFunction used to replace the sidebar items of type 'autogenerated' with real sidebar items (docs, categories, links...). See also Customize the sidebar items generator
numberPrefixParserboolean | PrefixParserOmittedCustom parsing logic to extract number prefixes from file names. Use false to disable this behavior and leave the docs untouched, and true to use the default parser. See also Using number prefixes
docsRootComponentstring'@theme/DocsRoot'Parent component of all the docs plugin pages (including all versions). Stays mounted when navigation between docs pages and versions.
docVersionRootComponentstring'@theme/DocVersionLayout'Parent component of all docs pages of an individual version (doc pages with sidebars, tags pages). Stays mounted when navigation between pages of that specific version.
docRootComponentstring'@theme/DocRoot'Parent component of all doc pages with sidebars (regular docs pages, category generated index pages). Stays mounted when navigation between such pages.
docItemComponentstring'@theme/DocItem'Main doc container, with TOC, pagination, etc.
docTagsListComponentstring'@theme/DocTagsListPage'Root component of the tags list page
docTagDocListComponentstring'@theme/DocTagDocListPage'Root component of the "docs containing tag X" page.
docCategoryGeneratedIndexComponentstring'@theme/DocCategoryGeneratedIndexPage'Root component of the generated category index page.
remarkPluginsany[][]Remark plugins passed to MDX.
rehypePluginsany[][]Rehype plugins passed to MDX.
rehypePluginsany[][]Recma plugins passed to MDX.
beforeDefaultRemarkPluginsany[][]Custom Remark plugins passed to MDX before the default Docusaurus Remark plugins.
beforeDefaultRehypePluginsany[][]Custom Rehype plugins passed to MDX before the default Docusaurus Rehype plugins.
showLastUpdateAuthorbooleanfalseWhether to display the author who last updated the doc.
showLastUpdateTimebooleanfalseWhether to display the last date the doc was updated. This requires access to git history during the build, so will not work correctly with shallow clones (a common default for CI systems). With GitHub actions/checkout, usefetch-depth: 0.
disableVersioningbooleanfalseExplicitly disable versioning even when multiple versions exist. This will make the site only include the current version. Will error if includeCurrentVersion: false and disableVersioning: true.
includeCurrentVersionbooleantrueInclude the current version of your docs.
lastVersionstringFirst version in versions.jsonThe version navigated to in priority and displayed by default for docs navbar items.
onlyIncludeVersionsstring[]All versions availableOnly include a subset of all available versions.
versionsVersionsConfig{}Independent customization of each version's properties.
tagsstring | false | null | undefinedtags.ymlPath to a YAML file listing pre-defined tags. Relative to the docs version content directories.
onInlineTags'ignore' | 'log' | 'warn' | 'throw'warnThe plugin behavior when docs contain inline tags (not appearing in the list of pre-defined tags, usually docs/tags.yml).

类型

EditUrlFunction

type EditUrlFunction = (params: {
version: string;
versionDocsDirPath: string;
docPath: string;
permalink: string;
locale: string;
}) => string | undefined;

PrefixParser

type PrefixParser = (filename: string) => {
filename: string;
numberPrefix?: number;
};

SidebarGenerator

type SidebarGenerator = (generatorArgs: {
/** The sidebar item with type "autogenerated" to be transformed. */
item: {type: 'autogenerated'; dirName: string};
/** Useful metadata for the version this sidebar belongs to. */
version: {contentPath: string; versionName: string};
/** All the docs of that version (unfiltered). */
docs: {
id: string;
title: string;
frontMatter: DocFrontMatter & Record<string, unknown>;
source: string;
sourceDirName: string;
sidebarPosition?: number | undefined;
}[];
/** Number prefix parser configured for this plugin. */
numberPrefixParser: PrefixParser;
/** The default category index matcher which you can override. */
isCategoryIndex: CategoryIndexMatcher;
/**
* key is the path relative to the doc content directory, value is the
* category metadata file's content.
*/
categoriesMetadata: {[filePath: string]: CategoryMetadata};
/**
* Useful to re-use/enhance the default sidebar generation logic from
* Docusaurus.
*/
defaultSidebarItemsGenerator: SidebarGenerator;
// Returns an array of sidebar items — same as what you can declare in
// sidebars.js, except for shorthands. See https://docusaurus.io/docs/sidebar/items
}) => Promise<SidebarItem[]>;

type CategoryIndexMatcher = (param: {
/** The file name, without extension */
fileName: string;
/**
* The list of directories, from lowest level to highest.
* If there's no dir name, directories is ['.']
*/
directories: string[];
/** The extension, with a leading dot */
extension: string;
}) => boolean;

VersionsConfig

type VersionConfig = {
/**
* The base path of the version, will be appended to `baseUrl` +
* `routeBasePath`.
*/
path?: string;
/** The label of the version to be used in badges, dropdowns, etc. */
label?: string;
/** The banner to show at the top of a doc of that version. */
banner?: 'none' | 'unreleased' | 'unmaintained';
/** Show a badge with the version label at the top of each doc. */
badge?: boolean;
/** Prevents search engines from indexing this version */
noIndex?: boolean;
/** Add a custom class name to the <html> element of each doc */
className?: string;
};

type VersionsConfig = {[versionName: string]: VersionConfig};

示例配置

您可以通过预设选项或插件选项来配置此插件。

tip

大多数Docusaurus用户通过预设选项配置此插件。

如果您使用预设,请通过预设选项配置此插件:

docusaurus.config.js
module.exports = {
presets: [
[
'@docusaurus/preset-classic',
{
docs: {
path: 'docs',
breadcrumbs: true,
// 简单用例:字符串 editUrl
// editUrl: 'https://github.com/facebook/docusaurus/edit/main/website/',
// 高级用例:函数式 editUrl
editUrl: ({versionDocsDirPath, docPath}) =>
`https://github.com/facebook/docusaurus/edit/main/website/${versionDocsDirPath}/${docPath}`,
editLocalizedFiles: false,
editCurrentVersion: false,
routeBasePath: 'docs',
include: ['**/*.md', '**/*.mdx'],
exclude: [
'**/_*.{js,jsx,ts,tsx,md,mdx}',
'**/_*/**',
'**/*.test.{js,jsx,ts,tsx}',
'**/__tests__/**',
],
sidebarPath: 'sidebars.js',
async sidebarItemsGenerator({
defaultSidebarItemsGenerator,
numberPrefixParser,
item,
version,
docs,
isCategoryIndex,
}) {
// 使用提供的数据生成自定义侧边栏切片
return [
{type: 'doc', id<

Markdown 前置内容

Markdown 文档可以使用以下 Markdown front matter 元数据字段,由一行 --- 包围。

接受的字段:

NameTypeDefaultDescription
idstringfile path (including folders, without the extension)A unique document ID.
titlestringMarkdown title or idThe text title of your document. Used for the page metadata and as a fallback value in multiple places (sidebar, next/previous buttons...). Automatically added at the top of your doc if it does not contain any Markdown title.
title_metastringfrontMatter.titleThe SEO metadata title of your document used in <head> for <title> and og:title. Permits to override frontMatter.title when the displayed title and SEO title should be different.
pagination_labelstringsidebar_label or titleThe text used in the document next/previous buttons for this document.
displayed_sidebarstringundefinedForce the display of a given sidebar when browsing the current document. Read the multiple sidebars guide for details.
hide_titlebooleanfalseWhether to hide the title at the top of the doc. It only hides a title declared through the front matter, and have no effect on a Markdown title at the top of your document.
hide_table_of_contentsbooleanfalseWhether to hide the table of contents to the right.
toc_min_heading_levelnumber2The minimum heading level shown in the table of contents. Must be between 2 and 6 and lower or equal to the max value.
toc_max_heading_levelnumber3The max heading level shown in the table of contents. Must be between 2 and 6.
pagination_nextstring | nullNext doc in the sidebarThe ID of the documentation you want the "Next" pagination to link to. Use null to disable showing "Next" for this page.
pagination_prevstring | nullPrevious doc in the sidebarThe ID of the documentation you want the "Previous" pagination to link to. Use null to disable showing "Previous" for this page.
parse_number_prefixesbooleannumberPrefixParser plugin optionWhether number prefix parsing is disabled on this doc. See also Using number prefixes.
custom_edit_urlstring | nullComputed using the editUrl plugin optionThe URL for editing this document. Use null to disable showing "Edit this page" for this page.
keywordsstring[]undefinedKeywords meta tag for the document page, for search engines.
descriptionstringThe first line of Markdown contentThe description of your document, which will become the <meta name="description" content="..."/> and <meta property="og:description" content="..."/> in <head>, used by search engines.
imagestringundefinedCover or thumbnail image that will be used as the <meta property="og:image" content="..."/> in the <head>, enhancing link previews on social media and messaging platforms.
slugstringFile pathAllows to customize the document URL (/<routeBasePath>/<slug>). Support multiple patterns: slug: my-doc, slug: /my/path/myDoc, slug: /.
tagsTag[]undefinedA list of strings or objects of two string fields label and permalink to tag to your docs. Strings can be a reference to keys of a tags file (usually tags.yml)
draftbooleanfalseDraft documents will only be available during development.
unlistedbooleanfalseUnlisted documents will be available in both development and production. They will be "hidden" in production, not indexed, excluded from sitemaps, and can only be accessed by users having a direct link.
last_updateFrontMatterLastUpdateundefinedAllows overriding the last update author/date. Date can be any parsable date string.
type FrontMatterLastUpdate = {date?: string; author?: string};

type Tag = string | {label: string; permalink: string};

示例:

---
id: doc-markdown
title: Docs Markdown Features
hide_title: false
hide_table_of_contents: false
sidebar_label: Markdown
sidebar_position: 3
pagination_label: Markdown features
custom_edit_url: https://github.com/facebook/docusaurus/edit/main/docs/api-doc-markdown.md
description: How do I find you when I cannot solve this problem
keywords:
- docs
- docusaurus
tags: [docusaurus]
image: https://i.imgur.com/mErPwqL.png
slug: /myDoc
last_update:
date: 1/1/2000
author: custom author name
---

# Markdown Features

My Document Markdown content

标签文件

使用tags插件选项来配置YAML标签文件的路径。

按照惯例,插件将在您的内容文件夹的根目录中查找一个tags.yml文件。

此文件可以包含一系列预定义的标签。您可以在Markdown文件中通过它们的键引用这些标签,这要归功于tags front matter

Keeping tags consistent

使用标签文件,您可以确保在插件内容集中标签的使用是一致的。使用onInlineTags: 'throw'插件选项来强制执行这种一致性,并防止使用即时声明的内联标签。

类型

提供的标签文件的YAML内容应遵循以下格式:

type Tag = {
label?: string; // Tag display label
permalink?: string; // Tag URL pathname segment
description?: string; // Tag description displayed in the tag page
};

type TagsFileInput = Record<string, Partial<Tag> | null>;

示例

tags.yml
releases:
label: 'Product releases'
permalink: '/product-releases'
description: 'Content related to product releases.'

# A partial tag definition is also valid
announcements:
label: 'Announcements'

# An empty tag definition is also valid
# Other attributes will be inferred from the key
emptyTag:
content.md
---
tags: [releases, announcements, emptyTag]
---

# Title

Content

国际化

首先阅读i18n介绍

翻译文件位置

  • 基础路径: website/i18n/[locale]/docusaurus-plugin-content-docs
  • 多实例路径: website/i18n/[locale]/docusaurus-plugin-content-docs-[pluginId]
  • JSON 文件: 使用 docusaurus write-translations 提取
  • Markdown 文件: website/i18n/[locale]/docusaurus-plugin-content-docs/[versionName]

示例文件系统结构

website/i18n/[locale]/docusaurus-plugin-content-docs

# translations for website/docs
├── current
│ ├── api
│ │ └── config.md
│ └── getting-started.md
├── current.json

# translations for website/versioned_docs/version-1.0.0
├── version-1.0.0
│ ├── api
│ │ └── config.md
│ └── getting-started.md
└── version-1.0.0.json