MkDocs

MkDocs๋Š” ๋งˆํฌ๋‹ค์šด(Markdown) ํŒŒ์ผ์„ HTML๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ •์  ์›น์‚ฌ์ดํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” Python ๊ธฐ๋ฐ˜์˜ ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ๊ธฐ์ด๋‹ค. MkDocs์˜ ์„ค์น˜์™€ ์‚ฌ์šฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•ด๋“œ๋ฆฌ๊ฒ ๋‹ค.

1. MkDocs ์„ค์น˜

MkDocs๋Š” Python์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Python์ด ๋จผ์ € ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋œ ํ›„, pip๋กœ MkDocs๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

์„ค์น˜ ๋ช…๋ น์–ด

pip install mkdocs

์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด mkdocs ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

2. ์ƒˆ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

MkDocs ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ๋งŒ๋“ ๋‹ค.

mkdocs new my-project
cd my-project

์ด ๋ช…๋ น์–ด๋Š” my-project๋ผ๋Š” ํด๋”๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ทธ ์•ˆ์— ๊ธฐ๋ณธ์ ์ธ MkDocs ํŒŒ์ผ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

3. ํ”„๋กœ์ ํŠธ ํด๋” ๊ตฌ์กฐ

my-project ํด๋”์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:

my-project/
    mkdocs.yml    # MkDocs ์„ค์ • ํŒŒ์ผ
    docs/
        index.md  # ๊ธฐ๋ณธ ๋ฌธ์„œ ํŒŒ์ผ
  • mkdocs.yml: ์‚ฌ์ดํŠธ ์„ค์ •์„ ๊ด€๋ฆฌํ•˜๋Š” ํŒŒ์ผ์ด๋‹ค.

  • docs/: ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ๋“ค์ด ์ €์žฅ๋˜๋Š” ํด๋”์ด๋‹ค. ์—ฌ๊ธฐ์— ์—ฌ๋Ÿฌ ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

  • index.md: ์‚ฌ์ดํŠธ์˜ ๊ธฐ๋ณธ ํŽ˜์ด์ง€๊ฐ€ ๋˜๋Š” ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์ด๋‹ค.

4. ๋กœ์ปฌ ์„œ๋ฒ„ ์‹คํ–‰

MkDocs๋Š” ์ž‘์„ฑ ์ค‘์ธ ์‚ฌ์ดํŠธ๋ฅผ ๋กœ์ปฌ์—์„œ ๋ฏธ๋ฆฌ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ๋กœ์ปฌ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ ํ›„, ๋ธŒ๋ผ์šฐ์ €์—์„œ http://127.0.0.1:8000/๋กœ ์ ‘์†ํ•˜๋ฉด ๋ฌธ์„œ ์‚ฌ์ดํŠธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค.

5. ๋ฌธ์„œ ์ž‘์„ฑ

docs/ ํด๋” ์•ˆ์— ์ƒˆ๋กœ์šด ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด introduction.md๋ผ๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ๋‹ค.

๊ทธ๋ฆฌ๊ณ  mkdocs.yml ํŒŒ์ผ์— ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•œ ๋ฌธ์„œ๋ฅผ ๋ฉ”๋‰ด์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์„ค์ •ํ•˜๋ฉด ๋ฉ”๋‰ด์— "Introduction" ํ•ญ๋ชฉ์ด ๋‚˜ํƒ€๋‚˜๊ณ , ํด๋ฆญํ•˜๋ฉด introduction.md ํŒŒ์ผ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋œ๋‹ค.

6. ํ…Œ๋งˆ ์„ค์ •

MkDocs๋Š” ๋‹ค์–‘ํ•œ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์ดํŠธ์˜ ๋””์ž์ธ์„ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ ํ…Œ๋งˆ๋Š” mkdocs ํ…Œ๋งˆ์ด์ง€๋งŒ, ๋‹ค๋ฅธ ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

๊ธฐ๋ณธ ํ…Œ๋งˆ ๋ณ€๊ฒฝ

mkdocs.yml ํŒŒ์ผ์—์„œ ํ…Œ๋งˆ ์„ค์ •์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, readthedocs ํ…Œ๋งˆ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์–‘ํ•œ ํ…Œ๋งˆ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด MkDocs ํ…Œ๋งˆ ํŽ˜์ด์ง€arrow-up-right๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.

7. ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ

๋ฌธ์„œ๋ฅผ ๋ชจ๋‘ ์ž‘์„ฑํ•˜๊ณ  ๋‚˜๋ฉด, build ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ œ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ์ •์  ์‚ฌ์ดํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด site/ ํด๋”๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ, ์—ฌ๊ธฐ์— HTML ํŒŒ์ผ๋“ค์ด ์ €์žฅ๋œ๋‹ค. ์ด ํด๋”๋ฅผ ์›น ์„œ๋ฒ„์— ์—…๋กœ๋“œํ•˜๋ฉด ์›น์‚ฌ์ดํŠธ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค.

8. GitHub Pages์— ๋ฐฐํฌ

MkDocs๋Š” GitHub Pages์— ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋™์œผ๋กœ GitHub Pages์— ์‚ฌ์ดํŠธ๊ฐ€ ๋ฐฐํฌ๋œ๋‹ค.

์ด ๋ช…๋ น์–ด๋Š” GitHub Pages์— ์‚ฌ์ดํŠธ๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ , ๋ฐฐํฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด https://username.github.io/repository/์—์„œ ์‚ฌ์ดํŠธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

9. ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐ ํ™•์žฅ ๊ธฐ๋Šฅ

MkDocs๋Š” ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ง€์›ํ•˜๋ฉฐ, ์ด๋“ค์„ ํ†ตํ•ด ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ฝ”๋“œ ํ•˜์ด๋ผ์ดํŠธ๋ฅผ ์ ์šฉํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

ํด๋” ๊ตฌ์กฐ

MkDocs์—์„œ ํ•˜์œ„ ํด๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์„œ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๊ณ , ์ด๋ฅผ ํ†ตํ•ด ๋‹ค๋‹จ๊ณ„ ๋ชฉ์ฐจ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. mkdocs.yml ํŒŒ์ผ์—์„œ nav ์„น์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋ฌธ์„œ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•˜์œ„ ํด๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์„œ์˜ ์„น์…˜๊ณผ ํ•˜์œ„ ์„น์…˜์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

1. ํ•˜์œ„ ํด๋” ๊ตฌ์กฐ

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ๋‹ค.

์—ฌ๊ธฐ์„œ section1๊ณผ section2๋Š” ๊ฐ๊ฐ์˜ ํ•˜์œ„ ํด๋”๋กœ, ๊ทธ ์•ˆ์— ์—ฌ๋Ÿฌ ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์ด ์žˆ๋‹ค.

2. mkdocs.yml์—์„œ ๋ชฉ์ฐจ ๊ตฌ์„ฑ

ํ•˜์œ„ ํด๋”๋ฅผ ํฌํ•จํ•œ ๋ชฉ์ฐจ๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด mkdocs.yml ํŒŒ์ผ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด nav ์„น์…˜์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์„ค์ •ํ•˜๋ฉด MkDocs๋Š” ๊ฐ ํด๋”์˜ ํŒŒ์ผ์„ ๊ณ„์ธต์ ์œผ๋กœ ํ‘œ์‹œํ•œ๋‹ค. Section 1๊ณผ Section 2๋Š” ๊ฐ ํด๋”์— ํ•ด๋‹นํ•˜๊ณ , ๊ทธ ์•ˆ์— ์žˆ๋Š” ๋ฌธ์„œ๋“ค์ด ํ•˜์œ„ ํ•ญ๋ชฉ์œผ๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค.

3. ํ•˜์œ„ ์„น์…˜ ์ถ”๊ฐ€

ํ•„์š”ํ•˜๋ฉด ๋” ๋งŽ์€ ํ•˜์œ„ ์„น์…˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, section1 ํด๋” ๋‚ด์— ๋˜ ๋‹ค๋ฅธ ํ•˜์œ„ ํด๋”๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ํด๋” ๋‚ด์— ๋ฌธ์„œ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  mkdocs.yml ํŒŒ์ผ์—์„œ ์ด๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ์„ค์ •์€ Section 1 ์•„๋ž˜์— Details๋ผ๋Š” ํ•˜์œ„ ์„น์…˜์„ ๋งŒ๋“ค๊ณ , ๊ทธ ์•„๋ž˜์— ๋‹ค์‹œ Part 1๊ณผ Part 2๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.

4. ๊ฒฐ๊ณผ

์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ์„ค์ •ํ•˜๋ฉด, MkDocs๋Š” ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์„ ๊ณ„์ธต์ ์œผ๋กœ ํ•ด์„ํ•˜์—ฌ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”์— ํ‘œ์‹œํ•œ๋‹ค. ํด๋” ๊ตฌ์กฐ์™€ mkdocs.yml ํŒŒ์ผ ๋‚ด nav ์„ค์ •์„ ํ†ตํ•ด ์›ํ•˜๋Š” ๋Œ€๋กœ ๋‹ค๋‹จ๊ณ„ ๋ชฉ์ฐจ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ

MkDocs์—์„œ Mermaid ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ LaTeX ์ˆ˜์‹์„ ๋ Œ๋”๋งํ•˜๋ ค๋ฉด ๊ฐ๊ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋‚˜ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” Mermaid์™€ LaTeX ๋ Œ๋”๋ง์„ ์œ„ํ•œ ์„ค์ • ๋ฐฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

1. Mermaid ๋‹ค์ด์–ด๊ทธ๋žจ ๋ Œ๋”๋ง

Mermaid๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๋งˆํฌ๋‹ค์šด ๋ฌธ์„œ ๋‚ด์—์„œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค. MkDocs์—์„œ๋Š” Mermaid ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๋ Œ๋”๋งํ•˜๊ธฐ ์œ„ํ•ด mkdocs-mermaid2-plugin์„ ์‚ฌ์šฉํ•œ๋‹ค.

Mermaid ์„ค์น˜ ๋ฐ ์„ค์ •

  1. ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜: mkdocs-mermaid2-plugin์„ ์„ค์น˜ํ•œ๋‹ค.

  2. ํ”Œ๋Ÿฌ๊ทธ์ธ ํ™œ์„ฑํ™”: mkdocs.yml ํŒŒ์ผ์—์„œ Mermaid ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์„ฑํ™”ํ•œ๋‹ค.

  3. Mermaid ์‚ฌ์šฉ: ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์—์„œ Mermaid ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

2. LaTeX ์ˆ˜์‹ ๋ Œ๋”๋ง

MkDocs์—์„œ LaTeX ์ˆ˜์‹์„ ๋ Œ๋”๋งํ•˜๋ ค๋ฉด mkdocs-mathjax-plugin ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. MathJax๋Š” LaTeX ๋ฌธ๋ฒ•์„ HTML๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

LaTeX ์„ค์น˜ ๋ฐ ์„ค์ •

  1. MathJax ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜:

  2. ํ”Œ๋Ÿฌ๊ทธ์ธ ํ™œ์„ฑํ™”: mkdocs.yml ํŒŒ์ผ์—์„œ MathJax ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์„ฑํ™”ํ•œ๋‹ค.

  3. LaTeX ์ˆ˜์‹ ์‚ฌ์šฉ: ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์—์„œ LaTeX ์ˆ˜์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ์ธ๋ผ์ธ ์ˆ˜์‹: $...$

    • ๋ธ”๋ก ์ˆ˜์‹: $$...$$

    ์˜ˆ์‹œ:

  4. MathJax ๊ตฌ์„ฑ (์„ ํƒ ์‚ฌํ•ญ): ๊ธฐ๋ณธ MathJax ์„ค์ • ์™ธ์— ์ถ”๊ฐ€๋กœ ์„ค์ •์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, mkdocs.yml์—์„œ config ์„น์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

3. MkDocs ๋กœ์ปฌ ์„œ๋ฒ„ ์‹คํ–‰

Mermaid์™€ LaTeX ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์ •ํ•œ ํ›„, ๋กœ์ปฌ ์„œ๋ฒ„์—์„œ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋ธŒ๋ผ์šฐ์ €์—์„œ http://127.0.0.1:8000/๋กœ ์ ‘์†ํ•˜๋ฉด Mermaid ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ LaTeX ์ˆ˜์‹์ด ์ œ๋Œ€๋กœ ๋ Œ๋”๋ง๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ…Œ๋งˆ ๊ตฌ์„ฑ

MkDocs์—์„œ๋Š” ๋‹ค์–‘ํ•œ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์ดํŠธ์˜ ๋””์ž์ธ์„ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ํ…Œ๋งˆ ์™ธ์—๋„ ์ถ”๊ฐ€์ ์ธ ์„œ๋“œํŒŒํ‹ฐ ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” MkDocs์—์„œ ํ…Œ๋งˆ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

1. ๊ธฐ๋ณธ ํ…Œ๋งˆ ๋ณ€๊ฒฝ

MkDocs์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ํ…Œ๋งˆ ์ค‘ ํ•˜๋‚˜๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด mkdocs.yml ํŒŒ์ผ์—์„œ theme ํ•ญ๋ชฉ์„ ์„ค์ •ํ•˜๋ฉด ๋œ๋‹ค. ๊ธฐ๋ณธ ์ œ๊ณต ํ…Œ๋งˆ๋กœ๋Š” mkdocs, readthedocs ๋“ฑ์ด ์žˆ๋‹ค.

ํ…Œ๋งˆ ๋ณ€๊ฒฝ ์˜ˆ์‹œ

์ด๋ ‡๊ฒŒ ์„ค์ •ํ•˜๋ฉด readthedocs ํ…Œ๋งˆ๋กœ ์‚ฌ์ดํŠธ์˜ ๋””์ž์ธ์ด ๋ณ€๊ฒฝ๋œ๋‹ค.

2. ์„œ๋“œํŒŒํ‹ฐ ํ…Œ๋งˆ ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ

MkDocs๋Š” ๋‹ค์–‘ํ•œ ์„œ๋“œํŒŒํ‹ฐ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € ์„ค์น˜ํ•œ ํ›„, mkdocs.yml ํŒŒ์ผ์—์„œ ํ•ด๋‹น ํ…Œ๋งˆ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์„œ๋“œํŒŒํ‹ฐ ํ…Œ๋งˆ ์˜ˆ์‹œ: Material for MkDocs

  1. Material for MkDocs ์„ค์น˜

    Material ํ…Œ๋งˆ๋Š” MkDocs์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ์„œ๋“œํŒŒํ‹ฐ ํ…Œ๋งˆ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์„ค์น˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ผ.

  2. ํ…Œ๋งˆ ํ™œ์„ฑํ™”

    ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด mkdocs.yml ํŒŒ์ผ์—์„œ Material ํ…Œ๋งˆ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

  3. ํ…Œ๋งˆ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•

    Material ํ…Œ๋งˆ๋Š” ๋งค์šฐ ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ œ๊ณตํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ƒ‰์ƒ์ด๋‚˜ ๊ธ€๊ผด์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ์ปค์Šคํ…€ CSS ์‚ฌ์šฉ

๋งŒ์•ฝ ๊ธฐ๋ณธ ์ œ๊ณต ํ…Œ๋งˆ๋‚˜ ์„œ๋“œํŒŒํ‹ฐ ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ๋„ ์ถ”๊ฐ€์ ์œผ๋กœ ๋””์ž์ธ์„ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, extra_css ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค์Šคํ…€ CSS ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. CSS ํŒŒ์ผ ์ถ”๊ฐ€

    ๋จผ์ € docs/ ํด๋” ์•ˆ์— custom.css ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ ํ›„, ์›ํ•˜๋Š” CSS ์Šคํƒ€์ผ์„ ์ •์˜ํ•œ๋‹ค.

  2. mkdocs.yml ํŒŒ์ผ์— CSS ํŒŒ์ผ ์ถ”๊ฐ€

    ๋‹ค์Œ์œผ๋กœ, mkdocs.yml ํŒŒ์ผ์— CSS ํŒŒ์ผ์„ ๋“ฑ๋กํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด custom.css์—์„œ ์ •์˜ํ•œ ์Šคํƒ€์ผ์ด ์‚ฌ์ดํŠธ์— ๋ฐ˜์˜๋œ๋‹ค.

4. ์ปค์Šคํ…€ ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ

๋งŒ์•ฝ ๋” ํฐ ์ˆ˜์ค€์˜ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ํ•„์š”ํ•˜๋‹ค๋ฉด, MkDocs์—์„œ HTML ํ…œํ”Œ๋ฆฟ์„ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. mkdocs.yml ํŒŒ์ผ์—์„œ extra_templates๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ HTML ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด custom_theme ํด๋”์—์„œ ํ…Œ๋งˆ ํ…œํ”Œ๋ฆฟ์„ ์ˆ˜์ •ํ•˜์—ฌ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•  ์ˆ˜ ์žˆ๋‹ค.


  1. ๊ธฐ๋ณธ ํ…Œ๋งˆ ๋ณ€๊ฒฝ: mkdocs.yml์—์„œ theme: name์„ ์„ค์ •ํ•˜์—ฌ ๊ธฐ๋ณธ ์ œ๊ณต ํ…Œ๋งˆ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

  2. ์„œ๋“œํŒŒํ‹ฐ ํ…Œ๋งˆ ์„ค์น˜: pip install ๋ช…๋ น์–ด๋กœ ์„œ๋“œํŒŒํ‹ฐ ํ…Œ๋งˆ๋ฅผ ์„ค์น˜ํ•˜๊ณ  mkdocs.yml์—์„œ ํ™œ์„ฑํ™”ํ•œ๋‹ค.

  3. ์ปค์Šคํ…€ CSS ์‚ฌ์šฉ: extra_css ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๊ฐ€์ ์ธ ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  4. ์ปค์Šคํ…€ ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ: HTML ํ…œํ”Œ๋ฆฟ์„ ์ง์ ‘ ์ˆ˜์ •ํ•˜์—ฌ ์‚ฌ์ดํŠธ ๋””์ž์ธ์„ ๋” ๊นŠ์ด ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•  ์ˆ˜ ์žˆ๋‹ค.

Last updated