๐ฆ plugin-content-docs
๋ฌธ์ ๋ง๋ค๊ธฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ํ์ฌ์ฐ๋ฃจ์ค์ ๊ธฐ๋ณธ ๋ฌธ์ ํ๋ฌ๊ทธ์ธ์ ๋๋ค.
#
์ค์น- npm
- Yarn
npm install --save @docusaurus/plugin-content-docs
yarn add @docusaurus/plugin-content-docs
tip
@docusaurus/preset-classic
์ ์ค์นํ ๊ฒฝ์ฐ์๋ ๊ธฐ๋ณธ ํ์ด์ง ํ๋ฌ๊ทธ์ธ์ ๋ฐ๋ก ์ค์นํ ํ์๋ ์์ต๋๋ค. ์๋์ ๊ฐ์ด ์ค์ ํ๋ ๋์ classic preset options์์ ์ค์ ํ ์ ์์ต๋๋ค.
#
์ค์ docusaurus.config.js
module.exports = { plugins: [ [ '@docusaurus/plugin-content-docs', { /** * ์ฌ์ดํธ ๋๋ ํฐ๋ฆฌ์ ์๋ ๊ฒฝ๋ก๋ก ํ์ผ ์์คํ
์ ๋ฐ์ดํฐ ๊ฒฝ๋ก๋ฅผ ์ค์ ํฉ๋๋ค. */ path: 'docs', /** * ์ฌ๋ฌ๋ถ์ ์ฌ์ดํธ๋ฅผ ํธ์งํ๊ธฐ ์ํ Base url์ ์ค์ ํฉ๋๋ค. * ๋ํ์ฌ์ฐ๋ฃจ์ค๋ "editUrl + relativeDocPath" ํ์์ผ๋ก ์ค์ ํธ์งํ ์ ์๋ editUrl์ ์ฒ๋ฆฌํฉ๋๋ค. */ editUrl: 'https://github.com/facebook/docusaurus/edit/master/website/', /** * ํ์์ ๋ฐ๋ผ ๊ฐ ๋งํฌ๋ค์ด ํ์ผ์ editUrl์ ์ง์ ์ค์ ํด์ค ์ ์์ต๋๋ค. */ editUrl: function ({ locale, version, versionDocsDirPath, docPath, permalink, }) { return `https://github.com/facebook/docusaurus/edit/master/website/${versionDocsDirPath}/${docPath}`; }, /** * ๋ฒ์ญ๋ ํ์ผ์ ๊น์ ์ปค๋ฐํ๋ ๊ฒฝ์ฐ ์ ์ฉํ ์ค์ ์
๋๋ค. * ๋งํฌ๋ค์ด ํ์ผ์ ๋ฒ์ญํ ํ ํธ์งํ ์ ์๋ url์ ์๋ณธ ๋ฒ์ญ๋์ง ์๋ ํ์ผ ๋์ * ๋ฒ์ญ๋ ํ์ผ์ ๊ฐ๋ฆฌํค๊ณ ์์ด์ผ ํฉ๋๋ค. * ์ฐธ๊ณ : editUrl์ด ํจ์์ธ ๊ฒฝ์ฐ์ ํด๋น ์ต์
์ ๋ฌด์๋ฉ๋๋ค. */ editLocalizedFiles: false, /** * ์ด์ ๋ฒ์ ์ ๋ํ ์ฌ์ฉ์์ ํ ๋ฆฌํ์คํธ ์์ฒญ์ ๋ง์ ๊ฒฝ์ฐ ์ ์ฉํฉ๋๋ค. * ๋ฌธ์ ๋ฒ์ ์ด ์ฌ๋ผ๊ฐ ๊ฒฝ์ฐ ํธ์งํ ์ ์๋ url์ ์ด์ ๋ฒ์ ๋ฌธ์ ๋์ * ํ์ฌ ๋ฒ์ ๋ฌธ์๋ก ์ฐ๊ฒฐ๋๋๋ก ํฉ๋๋ค. * ์ฐธ๊ณ : editUrl์ด ํจ์์ธ ๊ฒฝ์ฐ์ ํด๋น ์ต์
์ ๋ฌด์๋ฉ๋๋ค. */ editCurrentVersion: false, /** * ์ฌ๋ฌ๋ถ์ ์ฌ์ดํธ ๋ฌธ์ ๋๋ ํฐ๋ฆฌ์ ๋ํ URL ๊ฒฝ๋ก๋ฅผ ์ค์ ํฉ๋๋ค. * *์ ๋* URL ๋์ ์ฌ๋์๋ฅผ ๋ถ์ด์ง ๋ง์ธ์. * ์ฐธ๊ณ : base ๊ฒฝ๋ก ์์ด ๋ฐฐํฌ๋๋ ๋ฌธ์๋ `/`์ ์ค์ ํ ์๋ ์์ต๋๋ค. */ routeBasePath: 'docs', include: ['**/*.md', '**/*.mdx'], // Extensions to include. /** * ๋งํฌ๋ค์ด ํ์ด์ง ๋ชฉ๋ก์ ๋ณด์ฌ์ฃผ๋ ์ฌ์ด๋๋ฐ ๊ฒฝ๋ก๋ฅผ ์ค์ ํฉ๋๋ค. */ sidebarPath: 'sidebars.js', /** * "autogenerated" ํ์
์ ์ฌ์ด๋๋ฐ ์์ดํ
์ ์ค์ ์ฌ์ด๋๋ฐ ์์ดํ
(๋ฌธ์, ์นดํ
๊ณ ๋ฆฌ, ๋งํฌ ๋ฑ)์ผ๋ก * ๋ฐ๊พธ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํจ์์
๋๋ค. */ sidebarItemsGenerator: async function ({ defaultSidebarItemsGenerator, // ๋ํ์ฌ์ฐ๋ฃจ์ค์์ ์ฌ์ด๋๋ฐ๋ฅผ ๋ง๋๋ ๊ธฐ๋ณธ ๋ก์ง์ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ํฅ์์ํฌ ๋ ์ ์ฉํฉ๋๋ค. numberPrefixParser, // ํ๋ฌ๊ทธ์ธ์ ์ํ numberPrefixParser๋ฅผ ์ค์ ํฉ๋๋ค. item, // "autogenerated" ํ์
์ ์ฌ์ด๋๋ฐ ์์ดํ
์
๋๋ค. version, // ํ์ฌ ๋ฒ์ ์ ์ค์ ํฉ๋๋ค. docs, // ํด๋น ๋ฒ์ ์ ๋ชจ๋ ๋ฌธ์(ํํฐ๋งํ์ง ์์)๋ฅผ ์ค์ ํฉ๋๋ค. }) { // ์ฌ์ฉ์ ์ง์ ์ฌ์ด๋๋ฐ ์ฌ๋ผ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. return [ {type: 'doc', id: 'intro'}, { type: 'category', label: 'Tutorials', items: [ {type: 'doc', id: 'tutorial1'}, {type: 'doc', id: 'tutorial2'}, ], }, ]; }, /** * ๋ฌธ์ ํ๋ฌ๊ทธ์ธ์ "01-My Folder/02.My Doc.md"๊ฐ์ ์ซ์ ํ์์ ์ ๋์ฌ๋ฅผ ์ง์ํฉ๋๋ค. * ๋ฒํธ ์ ๋์ฌ๋ ์๋์ผ๋ก ์ถ์ถ๋์ด ์๋ ์์ฑ๋ ์ฌ์ด๋๋ฐ ์์ดํ
์ ์ ๋ ฌ ์์๋ก ์ฌ์ฉ๋ฉ๋๋ค. * ์ฌ์ฉ์ฑ์ ์ํด ๊ธฐ๋ณธ ๋ฌธ์์ id, ์ด๋ฆ, ์ ๋ชฉ์์ ์ซ์ ์ ๋์ฌ๋ ์๋์ผ๋ก ์ ๊ฑฐ๋ฉ๋๋ค. * ๊ตฌ๋ฌธ ๋ถ์์ ์ํ ๋ก์ง์์ ๋ชจ๋ ์ฌ์ฉ ๋ฐฉ์๊ณผ ํ์ผ๋ช
ํจํด์ ํ์ฉํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค. * "false"๋ฅผ ์ค์ ํ๋ฉด ์๋ฌด ๋์ ์์ด ๋ฌธ์๋ฅผ ๊ฑด๋๋ฆฌ์ง ์์ ์ํ๋ก ์ ์งํฉ๋๋ค. */ numberPrefixParser: function (filename) { // ์ ์ฌ์ ์ธ ๋ฒํธ ์ ๋์ฌ๋ฅผ ์ถ์ถํ๊ธฐ ์ํ ์ฌ์ฉ์ ์ง์ ๋ก์ง์ ๊ตฌํํฉ๋๋ค. const numberPrefix = findNumberPrefix(filename); // ์ ๋์ฌ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์์ ๋ ํ์ผ๋ช
๊ณผ ํจ๊ป ๋ฐํํฉ๋๋ค. if (numberPrefix) { return { numberPrefix, filename: filename.replace(prefix, ''), }; } // ์ ๋์ฌ๊ฐ ๋ณ๊ฒฌ๋์ง ์์ผ๋ฉด return {numberPrefix: undefined, filename}; }, /** * ๋ฌธ์ ํ์ด์ง์์ ์ฌ์ฉํ ํ
๋ง ์ปดํฌ๋ํธ๋ฅผ ์ค์ ํฉ๋๋ค. */ docLayoutComponent: '@theme/DocPage', docItemComponent: '@theme/DocItem', /** * MDX์ ์ ๋ฌํ Remark, Rehype ํ๋ฌ๊ทธ์ธ์ ์ค์ ํฉ๋๋ค. */ remarkPlugins: [ /* require('remark-math') */ ], rehypePlugins: [], /** * ๊ธฐ๋ณธ Remark, Rehype ํ๋ฌ๊ทธ์ธ์ด ์ ์ฉ๋๊ธฐ ์ ์ * MDX์ ์ฌ์ฉ์ ์ง์ Remark, Rehype ํ๋ฌ๊ทธ์ธ์ ์ ๋ฌํ๋๋ก ์ค์ ํฉ๋๋ค. */ beforeDefaultRemarkPlugins: [], beforeDefaultRehypePlugins: [], /** * ๋ง์ง๋ง์ผ๋ก ๋ฌธ์๋ฅผ ์์ ํ ์ฌ์ฉ์๋ฅผ ํ์ํ ์ง ์ฌ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค. */ showLastUpdateAuthor: false, /** * ๋ง์ง๋ง์ผ๋ก ๋ฌธ์๋ฅผ ์์ ํ ์ผ์๋ฅผ ํ์ํ ์ง ์ฌ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค. */ showLastUpdateTime: false, /** * ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌธ์ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ์ฌ์ดํธ๋ ๋ฒ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ด ํ์ฑํ๋ฉ๋๋ค. * ์๋ ์ต์
์ ๋ช
์์ ์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ ์ ์์ต๋๋ค. */ disableVersioning: false, /** * ๋ฒ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ํ์ฑํํ ๊ฒฝ์ฐ์๋ next ๋ฆด๋ฆฌ์ค ๋ฌธ์ ์ฒ๋ฆฌ๋ฅผ ๊ฑด๋๋๋๋ค. * ๋ฌธ์์ ์ ํ ๋น๋ ์ `/docs/next` ๋๋ ํฐ๋ฆฌ์๋ HTML ํ์ผ์ ๋ง๋ค์ง ์๊ณ * ๋ฒ์ ์ด ์ง์ ๋ ๋ฌธ์๋ง ๋ง๋ญ๋๋ค. */ excludeNextVersionDocs: false, /** * ๋ง์ง๋ง ๋ฒ์ ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ดํธ์์ ์ฐ์ ์ ์ผ๋ก ํ์ํ๋ ๋ฒ์ ์
๋๋ค. * navbar ์์ดํ
์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์๋๋ ๋ฒ์ ์
๋๋ค. * ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง์ง๋ง ๋ฒ์ ์ versions.json ํ์ผ์์ ๊ฐ์ฅ ๋จผ์ ํ์๋๋ ๋ฒ์ ์
๋๋ค. * ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง์ง๋ง ๋ฒ์ ์ ๋ฌธ์ ๊ฒฝ๋ก์ "๋ฃจํธ"์ ์์นํฉ๋๋ค(๋ฌธ์์ ๊ฒฝ๋ก=/docs/myDoc) * ์ฐธ๊ณ : ๋ง์ง๋ง ๋ฒ์ ์ ๊ฒฝ๋ก์ ํ์ ๋ฌธ์์ด์ ์ค์ ํ ์ ์์ต๋๋ค. * ํ: lastVersion ์ต์
๊ฐ์ 'current'๋ก ์ค์ ํ๋ฉด ๋๋ถ๋ถ ๋ฌธ์ ์์ด ๋์ํฉ๋๋ค. */ lastVersion: undefined, /** * ๋ํ์ฌ์ฐ๋ฃจ์ค์ ๋ฒ์ ๊ด๋ฆฌ ๊ธฐ๋ณธ๊ฐ์ ๋ชจ๋ ํ๋ก์ ํธ์ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค. * ๊ธฐ๋ณธ ๋ฒ์ ์ค์ ์ด ๋ง์ ๋ค์ง ์๋๋ค๋ฉด * ๊ฐ ๋ฒ์ ์ ํ์ ๋ฌธ์์ด์ด๋ ๊ฒฝ๋ก๋ฅผ ์์ ํด์ ์ค์ ํ ์ ์์ต๋๋ค. */ versions: { /* ์ค์ ์: current: { label: 'Android SDK v2.0.0 (WIP)', path: 'android-2.0.0', }, '1.0.0': { label: 'Android SDK v1.0.0', path: 'android-1.0.0', }, */ }, /** * ์ฌ์ฉํ ์ ์๋ ๋ฒ์ ๋ง ๊ณต๊ฐํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค. * ํ: ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ์ํ์์๋ ์์ ๋ฐ ๋น๋ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด 2~3๊ฐ ์ ๋ ๋ฒ์ ๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. */ onlyIncludeVersions: undefined, // ์: ["current", "1.0.0", "2.0.0"] }, ], ],};
#
๋งํฌ๋ค์ด ํ๋ฐํธ ๋งคํฐ๋งํฌ๋ค์ด ๋ฌธ์์์๋ ---
๋ก ๊ฐ์ผ ๋งํฌ๋ค์ด ํ๋ฐํธ ๋งคํฐ ์์ญ์์ ์๋์ ๊ฐ์ ๋ฉํ๋ฐ์ดํฐ ํ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
id
: ์ ์ผํ ๋ฌธ์ id์ ๋๋ค. ๊ฐ์ ์ค์ ํ์ง ์์ผ๋ฉด ๋ฌธ์id
๋ ํ์ผ๋ช (ํ์ฅ์๋ฅผ ์ ์ธํ)์ผ๋ก ๊ธฐ๋ณธ ์ค์ ๋ฉ๋๋ค.title
: ๋ฌธ์ ์ ๋ชฉ์ ๋๋ค. ๊ฐ์ ์ค์ ํ์ง ์์ผ๋ฉด ๋ฌธ์title
์id
๊ฐ์ผ๋ก ๊ธฐ๋ณธ ์ค์ ๋ฉ๋๋ค.hide_title
: ๋ฌธ์ ์๋จ์์ ์ ๋ชฉ์ ์จ๊ธธ์ง ์ฌ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์false
์ ๋๋คhide_table_of_contents
: ์ค๋ฅธ์ชฝ์ ํ์๋๋ ๋ชฉ์ฐจ ์จ๊น ์ฌ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์false
์ ๋๋คsidebar_label
: ์ฌ์ด๋๋ฐ์ ๋ค์/์ด์ ๋ฒํผ์ ํ์ํ ํ ์คํธ๋ฅผ ์ค์ ํฉ๋๋ค. ๊ฐ์ ์ค์ ํ์ง ์์ผ๋ฉด ๋ฌธ์sidebar_label
์title
๊ฐ์ผ๋ก ๊ธฐ๋ณธ ์ค์ ๋ฉ๋๋ค.sidebar_position
:autogenerated
์ฌ์ด๋๋ฐ ์์ดํ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ง๋ค์ด์ง ์ฌ์ด๋๋ฐ ์ฌ๋ผ์ด์ค ๋ด์์ ๋ฌธ์ ์์น๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค. Int ๋๋ Float ๊ฐ์ ์ค์ ํ ์ ์์ต๋๋ค.parse_number_prefixes
: ๋ฌธ์์ ๋ฒํธ ์ ๋์ฌ(001 - My Doc.md
,2. MyDoc.md
...)๊ฐ ์๋ ๊ฒฝ์ฐnumberPrefixParser
ํ๋ฌ๊ทธ์ธ์์ ์๋์ผ๋ก ๊ตฌ๋ฌธ์ ๋ถ์ํ๊ณ ์ถ์ถํดsidebar_position
์ผ๋ก ๋ฒํธ ์ ๋์ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.parse_number_prefixes: false
๋ก ์ค์ ํ๋ฉด ๋ฌธ์์์ ๋ฒํธ ์ ๋์ฌ ๊ตฌ๋ฌธ ๋ถ์์ ์ฌ์ฉํ์ง ์์ต๋๋ค.custom_edit_url
: ๋ฌธ์๋ฅผ ํธ์งํ ์ ์๋ URL์ ์ค์ ํฉ๋๋ค. ๊ฐ์ ์ค์ ํ์ง ์์ผ๋ฉด ๋ฌธ์์ ํธ์ง URL์docusaurus-plugin-content-docs
์ ์ ๋ฌ๋ ์ต์ ํ๋์์editUrl
๊ฐ์ ์ฌ์ฉํฉ๋๋ค.keywords
: ๊ฒ์ ์์ง์์ ํ์ํ ๋ฌธ์ ํ์ด์ง์ ํค์๋ ๋ฉํ ํ๊ทธ๋ฅผ ์ค์ ํฉ๋๋ค.description
: ๋ฌธ์์ ์ค๋ช ์ ๊ฒ์์์ง์์ ์ฌ์ฉํ ์ ์๊ฒ<head>
ํ๊ทธ ์์<meta name="description" content="..."/>
์<meta property="og:description" content="..."/>
๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ฐ์ ์ค์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฝํ ์ธ ์ ์ฒซ ๋ฒ์งธ ์ค์ ์ฌ์ฉํฉ๋๋คimage
: ๊ฒ์๊ธ ๋งํฌ๋ฅผ ํ์ํ ๋ ๋ณด์ฌ์ง๋ ์ปค๋ฒ ์ด๋ฏธ์ง ๋๋ ์ฌ๋ค์ผ ์ด๋ฏธ์ง๋ฅผ ์ค์ ํฉ๋๋ค.slug
: ๋ฌธ์ url์ ๋ณ๊ฒฝํ ์ ์๋๋ก ํ์ฉํฉ๋๋ค(/<routeBasePath>/<slug>
). ์ฌ๋ฌ ํจํด์ ์ค์ ํ ์๋ ์์ต๋๋ค:slug: my-doc
,slug: /my/path/myDoc
,slug: /
์:
---id: doc-markdowntitle: Markdown Featureshide_title: falsehide_table_of_contents: falsesidebar_label: Markdown :)custom_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---My Document Markdown content
#
i18ni18n ์๊ฐ ๋ฌธ์๋ฅผ ๋จผ์ ํ์ธํด์ฃผ์ธ์.
#
๋ฒ์ญ ํ์ผ ์์น- ๊ธฐ๋ณธ ๊ฒฝ๋ก:
website/i18n/<locale>/docusaurus-plugin-content-docs
- ๋ฉํฐ ์ธ์คํด์ค ๊ฒฝ๋ก:
website/i18n/<locale>/docusaurus-plugin-content-docs-<pluginId>
- JSON ํ์ผ: extracted with
docusaurus write-translations
- ๋งํฌ๋ค์ด ํ์ผ:
website/i18n/<locale>/docusaurus-plugin-content-docs/<version>
#
ํ์ผ ์์คํ ๊ตฌ์กฐ ์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