๐ฆ plugin-content-docs
๋ฌธ์ ๋ง๋ค๊ธฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ํ์ฌ์ฐ๋ฃจ์ค์ ๊ธฐ๋ณธ ๋ฌธ์ ํ๋ฌ๊ทธ์ธ์ ๋๋ค.
์ค์นโ
- npm
- Yarn
- pnpm
npm install --save @docusaurus/plugin-content-docs
yarn add @docusaurus/plugin-content-docs
pnpm add @docusaurus/plugin-content-docs
ํ
@docusaurus/preset-classic
์ ์ค์นํ ๊ฒฝ์ฐ์๋ ํ๋ฌ๊ทธ์ธ์ ๋ฐ๋ก ์ค์นํ ํ์๋ ์์ต๋๋ค.
์ฌ๋ฌ๋ถ์ ํ๋ฆฌ์ ์ต์ ์ ์ฌ์ฉํด ํ๋ฌ๊ทธ์ธ์ ์ค์ ํ ์ ์์ต๋๋ค.
์ค์ โ
์ค์ ํ ์ ์๋ ํ๋
์ต์ ๋ช | ํ์ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
---|---|---|---|
path | string | 'docs' | ์ฌ์ดํธ ๋๋ ํ ๋ฆฌ์ ์๋์ ์ธ ํ์ผ ์์คํ ์ ๋ฌธ์ ์ฝํ ์ธ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก์ ๋๋ค. |
editUrl | string | EditUrlFunction | undefined | ์ฌ์ดํธ๋ฅผ ํธ์งํ๊ธฐ ์ํ Base URL์
๋๋ค. ์ต์ข
URL์ editUrl + relativeDocPath ํํ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ต์
์ฌ์ฉ ์ ๊ฐ ํ์ผ์ ๋ํ ์ธ๋ฐํ ์ ์ด๋ฅผ ํ ์ ์์ต๋๋ค. ํด๋น ํ๋๋ฅผ ์ค์ ํ์ง ์์ผ๋ฉด ํธ์ง ๋งํฌ๊ฐ ๋นํ์ฑํ๋ฉ๋๋ค. |
editLocalizedFiles | boolean | false | ํธ์ง URL์ ํ์งํ๋์ง ์์ ์๋ณธ ํ์ผ ๋์ ํ์งํ๋ ํ์ผ์ ๋์์ผ๋ก ํฉ๋๋ค. editUrl ์ด ํจ์์ธ ๊ฒฝ์ฐ์๋ ๋ฌด์ํฉ๋๋ค. |
editCurrentVersion | boolean | false | ํธ์ง URL์ ํญ์ ์ด์ ๋ฒ์ ๋์ ํ์ฌ ๋ฒ์ ๋ฌธ์๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค. editUrl ์ด ํจ์์ธ ๊ฒฝ์ฐ์๋ ๋ฌด์ํฉ๋๋ค. |
routeBasePath | string | 'docs' | ์ฌ์ดํธ ๋ฌธ์ ์น์
์ ๋ํ URL ๋ผ์ฐํธ ํธ๋ ์ผ๋ง ์ฌ๋์๋ฅผ ํฌํจํ์ง ๋ง์ธ์. ๊ธฐ๋ณธ ๊ฒฝ๋ก ์์ด ๋ฌธ์๋ฅผ ์ฒ๋ฆฌํ ๋์ / ๋ฅผ ์ฌ์ฉํ์ธ์. |
tagsBasePath | string | 'tags' | ์ฌ์ดํธ ํ๊ทธ ๋ชฉ๋ก ํ์ด์ง์ ๋ํ URL ๋ผ์ฐํธ routeBasePath ์์ ์ถ๊ฐ๋ฉ๋๋ค. |
include | string[] | ['**/*.{md,mdx}'] | ์ฝํ ์ธ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ๋น๋ํ ๋งํฌ๋ค์ด ํ์ผ๊ณผ ์ผ์นํ๋ glob ํจํด ๋ฐฐ์ด์ ๋๋ค. |
exclude | string[] | ์ค์ ์์๋ฅผ ์ฐธ์กฐํ์ธ์ | ์ ์ธํ ๋งํฌ๋ค์ด ํ์ผ๊ณผ ์ผ์นํ๋ glob ํจํด ๋ฐฐ์ด์
๋๋ค. include ์ต์
์ ์ข ๋ ์ธ๋ถํํ๋ ์ญํ ์ ํฉ๋๋ค. |
sidebarPath | false | string | undefined | ์ฌ์ด๋๋ฐ ๊ตฌ์ฑ ๊ฒฝ๋ก์
๋๋ค. ์ฌ์ด๋๋ฐ๋ฅผ ๋นํ์ฑํํ๋ ค๋ฉด false ๋ฅผ ์ค์ ํ๊ณ ์์ ํ ์๋์ผ๋ก ์์ฑ๋ ์ฌ์ด๋๋ฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด undefined ๋ฅผ ์ค์ ํ์ธ์. |
sidebarCollapsible | boolean | true | ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ด๋๋ฐ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ ์ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค. ์ ์ ์ ์๋ ์นดํ ๊ณ ๋ฆฌ ํญ๋ชฉ์ ์ฐธ์กฐํ์ธ์. |
sidebarCollapsed | boolean | true | ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ด๋๋ฐ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ ์์ง ์ฌ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํผ์ณ์ง ์นดํ ๊ณ ๋ฆฌ ํญ๋ชฉ์ ์ฐธ์กฐํ์ธ์. |
sidebarItemsGenerator | SidebarGenerator | ์ค์ ํ์ง ์์ | 'autogenerated' ํ์
์ ์ฌ์ด๋๋ฐ ํญ๋ชฉ์ ์ค์ ์ฌ์ด๋๋ฐ ํญ๋ชฉ(๋ฌธ์, ์นดํ
๊ณ ๋ฆฌ, ๋งํฌ ๋ฑ)์ผ๋ก ๊ต์ฒดํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ์
๋๋ค. ์ฌ์ฉ์ ์ง์ ์ฌ์ด๋๋ฐ ์์ดํ
์์ฑ๊ธฐ ํญ๋ชฉ์ ์ฐธ์กฐํ์ธ์. |
numberPrefixParser | boolean | PrefixParser | ์ค์ ํ์ง ์์ | ํ์ผ๋ช
์์ ์ซ์ ์ ๋์ฌ๋ฅผ ์ถ์ถํ๋ ์ฌ์ฉ์ ์ง์ ๊ตฌ๋ฌธ ๋ถ์ ๋ฐฉ์์ ์ค์ ํฉ๋๋ค. ํด๋น ๋์์ ๋นํ์ฑํํ๊ณ ๋ฌธ์๋ฅผ ์ ์งํ๋ ค๋ฉด false ๋ฅผ ์ ํํ๊ณ ๊ธฐ๋ณธ ๊ตฌ๋ฌธ ๋ถ์์ ์ฌ์ฉํ๋ ค๋ฉด true ๋ฅผ ์ ํํ์ธ์. ์ซ์ ์ ๋์ฌ ์ฌ์ฉํ๊ธฐ ํญ๋ชฉ์ ์ฐธ์กฐํ์ธ์. |
docLayoutComponent | string | '@theme/DocPage' | ๊ฐ ๋ฌธ์ ํ์ด์ง์ ๋ฃจํธ ๋ ์ด์์ ์ปดํฌ๋ํธ์ ๋๋ค. ๋ฒ์ ๋ฐ์ดํฐ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ๋ฉฐ ๋ฌธ์ ์ ํ ์ ๋ง์ดํธ ํด์ ๋์ง ์์ต๋๋ค. |
docItemComponent | string | '@theme/DocItem' | ๋ชฉ์ฐจ, ํ์ด์ง ์์ญ ๋ฑ ๊ธฐ๋ณธ ๋ฌธ์ ์ปจํ ์ด๋ |
docTagsListComponent | string | '@theme/DocTagsListPage' | ํ๊ทธ ๋ชฉ๋ก ํ์ด์ง์ ๋ฃจํธ ์ปดํฌ๋ํธ |
docTagDocListComponent | string | '@theme/DocTagDocListPage' | "ํ๊ทธ X๋ฅผ ํฌํจํ ๋ฌธ์" ํ์ด์ง์ ๋ฃจํธ ์ปดํฌ๋ํธ |
docCategoryGeneratedIndexComponent | string | '@theme/DocCategoryGeneratedIndexPage' | ์์ฑ๋ ์นดํ ๊ณ ๋ฆฌ ์ธ๋ฑ์ค ํ์ด์ง์ ๋ฃจํธ ์ปดํฌ๋ํธ |
remarkPlugins | any[] | [] | MDX์ ์ ๋ฌ๋ Remark ํ๋ฌ๊ทธ์ธ |
rehypePlugins | any[] | [] | MDX์ ์ ๋ฌ๋ Rehype ํ๋ฌ๊ทธ์ธ |
beforeDefaultRemarkPlugins | any[] | [] | ๊ธฐ๋ณธ ๋ํ์ฌ์ฐ๋ฃจ์ค Remark ํ๋ฌ๊ทธ์ธ๋ณด๋ค ๋จผ์ MDX์ ์ ๋ฌ๋ ์ฌ์ฉ์ ์ง์ Remark ํ๋ฌ๊ทธ์ธ |
beforeDefaultRehypePlugins | any[] | [] | ๊ธฐ๋ณธ ๋ํ์ฌ์ฐ๋ฃจ์ค Rehype ํ๋ฌ๊ทธ์ธ๋ณด๋ค ๋จผ์ MDX์ ์ ๋ฌ๋ ์ฌ์ฉ์ ์ง์ Rehype ํ๋ฌ๊ทธ์ธ |
showLastUpdateAuthor | boolean | false | ๋ฌธ์๋ฅผ ๋ง์ง๋ง์ผ๋ก ์ ๋ฐ์ดํธํ ์์ฑ์๋ฅผ ํ์ํ ์ง ์ฌ๋ถ |
showLastUpdateTime | boolean | false | ๋ฌธ์๋ฅผ ๋ง์ง๋ง์ผ๋ก ์ ๋ฐ์ดํธํ ๋ ์ง๋ฅผ ํ์ํ ์ง ์ฌ๋ถ |
breadcrumbs | boolean | true | ๋ฌธ์ ํ์ด์ง์์ ์ด๋ ๊ฒฝ๋ก๋ฅผ ํ์ฑํ ๋๋ ๋นํ์ฑํ |
disableVersioning | boolean | false | ์ฌ๋ฌ ๋ฒ์ ์ด ์๋๋ผ๋ ๋ช
์์ ์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๋นํ์ฑํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ดํธ์ ํ์ฌ ๋ฒ์ ๋ง ํฌํจ๋ฉ๋๋ค. includeCurrentVersion: false ์ด๋ disableVersioning: true ์ธ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. |
includeCurrentVersion | boolean | true | ๋ฌธ์์ ํ์ฌ ๋ฒ์ ์ ํฌํจ |
lastVersion | string | versions.json ํ์ผ์์ ์ฒซ ๋ฒ์งธ ๋ฒ์ | ๋ฌธ์ ๋ฉ๋ด๋ฐ ์์ดํ ์ ๋ํด ์ฐ์ ์ ์ผ๋ก ํ์๋๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์๋๋ ๋ฒ์ |
onlyIncludeVersions | string[] | ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ๋ฒ์ | ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ๋ฒ์ ์ ํ์ ์งํฉ๋ง ํฌํจ |
versions | VersionsConfig | {} | ๊ฐ ๋ฒ์ ์ ์์ฑ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉ์ ์ง์ ํฉ๋๋ค. |
ํ์ โ
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: {
/** ๋ณํํ "์๋ ์์ฑ" ํ์
์ ์ฌ์ด๋๋ฐ ํญ๋ชฉ์
๋๋ค. */
item: {type: 'autogenerated'; dirName: string};
/** ์ฌ์ด๋๋ฐ๊ฐ ์ํ ๋ฒ์ ์ ํ์ํ ๋ฉํ๋ฐ์ดํฐ์
๋๋ค. */
version: {contentPath: string; versionName: string};
/** ํด๋น ๋ฒ์ ์ ๋ชจ๋ ๋ฌธ์(ํํฐ๋งํ์ง ์์). */
docs: {
id: string;
title: string;
frontMatter: DocFrontMatter & Record<string, unknown>;
source: string;
sourceDirName: string;
sidebarPosition?: number | undefined;
}[];
/** ํ๋ฌ๊ทธ์ธ์์ ์ค์ ํ ์ซ์ ์ ๋์ฌ ๊ตฌ๋ฌธ๋ถ์๊ธฐ์
๋๋ค. */
numberPrefixParser: PrefixParser;
/** ์ฌ์ ์ํ ์ ์๋ ๊ธฐ๋ณธ ์นดํ
๊ณ ๋ฆฌ ์ธ๋ฑ์ค ์ผ์น์์
๋๋ค. */
isCategoryIndex: CategoryIndexMatcher;
/**
* key๋ ๋ฌธ์ ์ฝํ
์ธ ๋๋ ํ ๋ฆฌ์ ๋ํ ์๋ ๊ฒฝ๋ก์ด๊ณ
* value๋ ์นดํ
๊ณ ๋ฆฌ ๋ฉํ๋ฐ์ดํฐ ํ์ผ์ ์ฝํ
์ธ ์
๋๋ค.
*/
categoriesMetadata: {[filePath: string]: CategoryMetadata};
/**
* ๋ํ์ฌ์ฐ๋ฃจ์ค์ ๊ธฐ๋ณธ ์ฌ์ด๋๋ฐ ์์ฑ ๋ก์ง์
* ์ฌ์ฌ์ฉํ๊ฑฐ๋ ํฅ์์ํค๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
*/
defaultSidebarItemsGenerator: SidebarGenerator;
// ์ฌ์ด๋๋ฐ ํญ๋ชฉ์ ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค. ๋จ์ถํ์ ์ ์ธํ๋ฉด
// sidebars.js์์ ์ ์ธํ ์ ์๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. https://docusaurus.io/docs/sidebar/items ํญ๋ชฉ์ ์ฐธ๊ณ ํ์ธ์.
}) => Promise<SidebarItem[]>;
type CategoryIndexMatcher = (param: {
/** ํ์ฅ์ ์๋ ํ์ผ๋ช
*/
fileName: string;
/**
* ๊ฐ์ฅ ๋ฎ์ ์์ค์์ ๋์ ์์ค์ผ๋ก ์ ๋ ฌํ ๋๋ ํ ๋ฆฌ ๋ชฉ๋ก์
๋๋ค.
* ๋๋ ํ ๋ฆฌ ์ด๋ฆ์ด ์์ผ๋ฉด ๋๋ ํ ๋ฆฌ๋ ['.']๋ก ์ฒ๋ฆฌํฉ๋๋ค.
*/
directories: string[];
/** ์ ์ ํฌํจํ ํ์ฅ์ */
extension: string;
}) => boolean;
VersionsConfig
โ
type VersionConfig = {
/**
* ๋ฒ์ ์ base ๊ฒฝ๋ก๋
* `baseUrl` + `routeBasePath`์ ์ถ๊ฐ๋ฉ๋๋ค.
*/
path?: string;
/** ๋ฐฐ์ง, ๋๋กญ๋ค์ด ๋ฑ์ ์ฌ์ฉํ ๋ฒ์ ๋ผ๋ฒจ์
๋๋ค. */
label?: string;
/** ํด๋น ๋ฒ์ ์ ๋ฌธ์ ์๋จ์ ํ์ํ ๋ฐฐ๋์
๋๋ค. */
banner?: 'none' | 'unreleased' | 'unmaintained';
/** ๊ฐ ๋ฌธ์ ์๋จ์ ๋ฒ์ ๋ผ๋ฒจ์ด ์๋ ๋ฐฐ์ง๋ฅผ ํ์ํฉ๋๋ค. */
badge?: boolean;
/** ๊ฒ์์์ง์ด ์ด ๋ฒ์ ์ ์ธ๋ฑ์ฑํ์ง ๋ชปํ๋๋ก ํฉ๋๋ค */
noIndex?: boolean;
/** ๊ฐ ๋ฌธ์์ <html> ์์์ ๋ํ ์ฌ์ฉ์ ์ง์ ํด๋์ค๋ช
์ถ๊ฐ */
className?: string;
};
type VersionsConfig = {[versionName: string]: VersionConfig};