跳转至主内容
Version: 2.0.0-beta.5 🚧

📦 plugin-content-docs

Docusaurus 默认的文档插件,其提供文档功能。

安装#

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

If you use the preset @docusaurus/preset-classic, you don't need to install this plugin as a dependency.

You can configure this plugin through the preset options.

配置#

Accepted fields:

NameTypeDefaultDescription
pathstring'docs'Path to data on filesystem relative to site dir.
editUrl!!crwdBlockTags_217_sgaTkcolBdwrc!!undefinedBase 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. 请务必不要添加末尾的斜杠。 Use / for shipping docs without base path.
includestring[]['**/*.{md,mdx}']Matching files will be included and processed.
excludestring[]参见示例配置被匹配的文件将不会有对应的路由被创建。
sidebarPath!!crwdBlockTags_218_sgaTkcolBdwrc!!undefined (creates autogenerated sidebar)Path to sidebar configuration.
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' by real sidebar items (docs, categories, links...). See also Customize the sidebar items generator
numberPrefixParser!!crwdBlockTags_219_sgaTkcolBdwrc!!OmittedCustom 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
docLayoutComponentstring'@theme/DocPage'Root Layout component of each doc page.
docItemComponentstring'@theme/DocItem'Main doc container, with TOC, pagination, etc.
remarkPluginsany[][]Remark plugins passed to MDX.
rehypePluginsany[][]Rehype plugins passed to MDX.
beforeDefaultRemarkPluginsany[][]在默认的 Docusaurus Remark 插件之前被传递给 MDX 的 Remark 插件。
beforeDefaultRehypePluginsany[][]在默认的 Docusaurus Rehype 插件之前被传递给 MDX 的 Rehype 插件。
showLastUpdateAuthorbooleanfalseWhether to display the author who last updated the doc.
showLastUpdateTimebooleanfalseWhether to display the last date the doc was updated.
disableVersioningbooleanfalseExplicitly disable the versioning feature even with versions. This will only include the "current" version (the /docs directory).
includeCurrentVersionbooleantrueInclude the "current" version of your docs (the /docs directory).
Tip: turn it off if the current version is a work-in-progress, not ready to be published.
lastVersionstringcurrent (alias for the first version to appear in versions.json and at the "root" (docs have path=/docs/myDoc))Set the version navigated to in priority on versioned sites and the one displayed by default in docs navbar items.
Note: the path and label of the last version are configurable.
Tip: lastVersion: 'current' makes sense in many cases.
versionsVersions{}Independent customization of each version's properties.
onlyIncludeVersionsstring[]All versions availableOnly include a subset of all available versions.
Tip: limit to 2 or 3 versions to improve startup and build time in dev and deploy previews.
type EditUrlFunction = (params: {  version: string;  versionDocsDirPath: string;  docPath: string;  permalink: string;  locale: string;}) => string | undefined;
type PrefixParser = (  filename: string,) => {filename: string; numberPrefix?: number};
type SidebarGenerator = (generatorArgs: {  item: {type: 'autogenerated'; dirName: string}; // the sidebar item with type "autogenerated"  version: {contentPath: string; versionName: string}; // the current version  docs: Array<{    id: string;    frontMatter: DocFrontMatter & Record<string, unknown>;    source: string;    sourceDirName: string;    sidebarPosition?: number | undefined;  }>; // all the docs of that version (unfiltered)  numberPrefixParser: PrefixParser; // numberPrefixParser configured for this plugin  defaultSidebarItemsGenerator: SidebarGenerator; // useful to re-use/enhance default sidebar generation logic from Docusaurus}) => Promise<SidebarItem[]>;
type Versions = Record<  string, // the version's ID  {    label: string; // the label of the version    path: string; // the route path of the version    banner: 'none' | 'unreleased' | 'unmaintained'; // the banner to show at the top of a doc of that version  }>;

示例配置#

Here's an example configuration object.

You can provide it as preset options or plugin options.

tip

Most Docusaurus users configure this plugin through the preset options.

const config = {  path: 'docs',  // Simple use-case: string editUrl  // editUrl: 'https://github.com/facebook/docusaurus/edit/master/website/',  // Advanced use-case: functional editUrl  editUrl: ({versionDocsDirPath, docPath}) =>    `https://github.com/facebook/docusaurus/edit/master/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',  sidebarItemsGenerator: async function ({    defaultSidebarItemsGenerator,    numberPrefixParser,    item,    version,    docs,  }) {    // Use the provided data to generate a custom sidebar slice    return [      {type: 'doc', id: 'intro'},      {        type: 'category',        label: 'Tutorials',        items: [          {type: 'doc', id: 'tutorial1'},          {type: 'doc', id: 'tutorial2'},        ],      },    ];  },  numberPrefixParser: function (filename) {    // Implement your own logic to extract a potential number prefix    const numberPrefix = findNumberPrefix(filename);    // Prefix found: return it with the cleaned filename    if (numberPrefix) {      return {        numberPrefix,        filename: filename.replace(prefix, ''),      };    }    // No number prefix found    return {numberPrefix: undefined, filename};  },  docLayoutComponent: '@theme/DocPage',  docItemComponent: '@theme/DocItem',  remarkPlugins: [require('remark-math')],  rehypePlugins: [],  beforeDefaultRemarkPlugins: [],  beforeDefaultRehypePlugins: [],  showLastUpdateAuthor: false,  showLastUpdateTime: false,  disableVersioning: false,  includeCurrentVersion: true,  lastVersion: undefined,  versions: {    current: {      label: 'Android SDK v2.0.0 (WIP)',      path: 'android-2.0.0',      banner: 'none',    },    '1.0.0': {      label: 'Android SDK v1.0.0',      path: 'android-1.0.0',      banner: 'unmaintained',    },  },  onlyIncludeVersions: ['current', '1.0.0', '2.0.0'],};

Preset options#

If you use a preset, configure this plugin through the preset options:

docusaurus.config.js
module.exports = {  presets: [    [      '@docusaurus/preset-classic',      {        docs: {          path: 'docs',          // ... configuration object here        },      },    ],  ],};

Plugin options#

If you are using a standalone plugin, provide options directly to the plugin:

docusaurus.config.js
module.exports = {  plugins: [    [      '@docusaurus/plugin-content-docs',      {        path: 'docs',        // ... configuration object here      },    ],  ],};

Markdown 前言#

Markdown documents can use the following Markdown FrontMatter metadata fields, enclosed by a line --- on either side.

Accepted fields:

NameTypeDefaultDescription
idstringfile path (including folders, without the extension)A unique document id.
titlestringMarkdown title or idThe text title of your document. 用于页面元数据和多个地方的备用值(Fallback Value,用于侧边栏、下篇/上篇按钮...)。 若没有 Markdown 标题,此字段将自动添加到您的文档顶部。
pagination_labelstringsidebar_label or titleThe text used in the document next/previous buttons for this document.
sidebar_labelstringtitleThe text shown in the document sidebar for this document.
sidebar_positionnumberDefault orderingControls the position of a doc inside the generated sidebar slice when using autogenerated sidebar items. See also Autogenerated sidebar metadatas.
hide_titlebooleanfalseWhether to hide the title at the top of the doc. 此选项仅隐藏前言中定义的标题,而对您 Markdown 文档顶部的标题无任何影响。
hide_table_of_contentsbooleanfalseWhether to hide the table of contents to the right.
parse_number_prefixesbooleannumberPrefixParser plugin optionWhether number prefix parsing is disabled on this doc. See also Using number prefixes.
custom_edit_urlstringComputed using the editUrl plugin optionThe URL for editing this document.
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 when displaying the link to your post.
slugstringFile pathAllows to customize the document url (/<routeBasePath>/<slug>). Support multiple patterns: slug: my-doc, slug: /my/path/myDoc, slug: /.

Example:

---id: doc-markdowntitle: Docs Markdown Featureshide_title: falsehide_table_of_contents: falsesidebar_label: Markdownsidebar_position: 3pagination_label: Markdown featurescustom_edit_url: https://github.com/facebook/docusaurus/edit/master/docs/api-doc-markdown.mddescription: How do I find you when I cannot solve this problemkeywords:  - docs  - docusaurusimage: https://i.imgur.com/mErPwqL.pngslug: /myDoc---# Markdown Features
My Document Markdown content

i18n#

Read the i18n introduction first.

Translation files location#

  • Base path: website/i18n/<locale>/docusaurus-plugin-content-docs
  • Multi-instance path: website/i18n/<locale>/docusaurus-plugin-content-docs-<pluginId>
  • JSON files: extracted with docusaurus write-translations
  • Markdown files: website/i18n/<locale>/docusaurus-plugin-content-docs/<version>

Example file-system structure#

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