π Docs App
π μκ°
apps/docs
μν¬μ€νμ΄μ€λ λͺ¨λ
Έλ ν¬ λ΄μμ λ¬Έμν(Docs) κΈ°λ₯μ λ΄λΉνλ Next.js κΈ°λ°μ μ ν리μΌμ΄μ
μ
λλ€.
μ΄ μ±μ Nextraμ Nextra Docs ν
λ§λ₯Ό νμ©νμ¬, λΉ λ₯΄κ³ ν¨μ¨μ μΈ λ¬Έμ μ¬μ΄νΈλ₯Ό ꡬμΆν μ μλλ‘ λμ΅λλ€.
λν νλ‘μ νΈμ λ€μν ν¨ν€μ§, λͺ¨λ, μ»΄ν¬λνΈμ λν λ¬Έμμ κ°μ΄λ, μμ λ±μ μ 곡νμ¬ κ°λ°μμ μ¬μ©μ λͺ¨λκ° μ½κ² μ 보λ₯Ό μ»μ μ μλλ‘ μ€κ³λμμ΅λλ€.
π Nextra κΈ°λ° λ¬Έμ μμ€ν
μ΄ μ±μ Nextraμ Nextra Docs ν λ§λ₯Ό κΈ°λ°μΌλ‘ ꡬμΆλμμ΅λλ€. Nextraλ Next.js μμμ λμνλ κ°λ ₯ν λ¬Έμ μ¬μ΄νΈ νλ μμν¬λ‘, λ€μκ³Ό κ°μ μ₯μ μ΄ μμ΅λλ€:
Next.js μ μ΄μ
- Next.js κΈ°λ°: μ΅μ Next.js νλ μμν¬λ₯Ό μ¬μ©νμ¬ λΉ λ₯΄κ³ ν¨μ¨μ μΈ μ μ /λμ λ¬Έμ νμ΄μ§λ₯Ό μ 곡ν©λλ€.
- MDX μ§μ: Markdownκ³Ό JSXλ₯Ό κ²°ν©ν MDX ν¬λ§·μ μ§μνμ¬, λ¬Έμ λ΄μμ 리μ‘νΈ μ»΄ν¬λνΈ νμ©μ΄ κ°λ₯ν©λλ€.
- λͺ¨λ Έλ ν¬ ν΅ν©: Turborepo νκ²½μμ λ€λ₯Έ μ±/ν¨ν€μ§μ μ°λλμ΄, κ³΅ν΅ μ»΄ν¬λνΈ λ° μ νΈλ¦¬ν°λ₯Ό μ½κ² μ°Έμ‘°ν μ μμ΅λλ€.
- 컀μ€ν
μ»΄ν¬λνΈ:
mdx-components.ts
λ₯Ό ν΅ν΄ λ¬Έμ λ΄μμ μ¬μ©ν 컀μ€ν μ»΄ν¬λνΈλ₯Ό μ μν μ μμ΅λλ€.
Nextra μ μ΄μ
- λΉ λ₯Έ λ¬Έμν: ν΄λ ꡬ쑰μ MDX νμΌλ§μΌλ‘ μμ½κ² λ¬Έμ μ¬μ΄νΈλ₯Ό ꡬμ±ν μ μμ΅λλ€.
- ν
λ§ μ§μ:
nextra-theme-docs
λ₯Ό ν΅ν΄ μΈλ ¨λ λ¬Έμ ν λ§μ λ€μν 컀μ€ν μ΅μ μ μ 곡ν©λλ€. - λ΄μ₯ κ²μ: Pagefindμ μ°λνμ¬, μ μ λΉλ νμλ λΉ λ₯Έ μ 체 λ¬Έμ κ²μμ΄ κ°λ₯ν©λλ€.
- λ²μ κ΄λ¦¬ λ° λ€κ΅μ΄ μ§μ: Nextraμ μ€μ μ ν΅ν΄ λ¬Έμ λ²μ κ΄λ¦¬μ λ€κ΅μ΄ μ§μμ΄ μ©μ΄ν©λλ€.
βοΈ μ£Όμ μ€μ λ° μ»€μ€ν°λ§μ΄μ§
next.config.js
μμ Nextra ν λ§ λ° μ΅μ μ μ€μ ν μ μμ΅λλ€.mdx-components.ts
νμΌμ ν΅ν΄ MDXμμ μ¬μ©ν 컀μ€ν μ»΄ν¬λνΈλ₯Ό μ μν μ μμ΅λλ€.content/
ν΄λ λ΄μ MDX νμΌμ μΆκ°νλ©΄ μλμΌλ‘ λ¬Έμ νμ΄μ§κ° μμ±λ©λλ€.
π λλ ν 리 ꡬ쑰
app/
: Next.jsμ λΌμ°νΈ λ° νμ΄μ§ μ»΄ν¬λνΈcomponents/
: λ¬Έμμμ μ¬μ©νλ UI μ»΄ν¬λνΈcontainers/
: λ¬Έμ λ μ΄μμ λ° μ»¨ν μ΄λ μ»΄ν¬λνΈcontent/
: μ€μ λ¬Έμ(MDX) νμΌμ΄ μμΉko/
: νκ΅μ΄ λ¬Έμen/
: μμ΄ λ¬Έμja/
: μΌλ³Έμ΄ λ¬Έμ
public/
: μ μ νμΌ(μ΄λ―Έμ§, ν°νΈ λ±)tests/
: ν μ€νΈ μ½λ
π‘ μ¬μ© μμ
λ¬Έμ μΆκ° μ, content/
ν΄λ λ΄μ κ° μΈμ΄λ³ ν΄λ(μ: ko/
, en/
, ja/
)μ MDX νμΌμ μμ±νλ©΄ λ©λλ€.
MDX νμΌμ μμ±νκ³ , νμμ λ°λΌ μλ μμμ κ°μ΄ 컀μ€ν
μ»΄ν¬λνΈλ₯Ό μ¬μ©ν μ μμ΅λλ€:
λ¬Έμ μμ±μ λν λ³΄λ€ μμΈν κ°μ΄λλ λ¬Έμν > λ¬Έμ μμ± λ°©λ²
λ¬Έμλ₯Ό μ°Έκ³ νμΈμ.
import CustomComponent from "../../components/CustomComponent";
---
title: μμ λ¬Έμ
description: λ¬Έμ μμ± μμμ
λλ€.
---
# μμ λ¬Έμ
<CustomComponent />
π¦ μμ‘΄μ± μ€μΉ
pnpm install --filter apps/docs
π οΈ κ°λ° λ° μ€ν
λ¬Έμ μ¬μ΄νΈλ₯Ό κ°λ° λͺ¨λλ‘ μ€ννλ €λ©΄ λ€μ λͺ λ Ήμ΄λ₯Ό μ¬μ©ν©λλ€:
pnpm run dev --filter apps/docs
ποΈ λΉλ
λ¬Έμ μ¬μ΄νΈλ μ μ μ¬μ΄νΈλ‘ λΉλλμ΄ λ°°ν¬λ©λλ€. λ€μ λͺ λ Ήμ΄λ‘ λΉλν μ μμ΅λλ€:
pnpm run build --filter apps/docs
π’ λ°°ν¬
λ¬Έμ μ¬μ΄νΈλ μ μ νμΌλ‘ λΉλλλ―λ‘, λΉλ ν μμ±λ νμΌμ μΉ μλ²μ λ°°ν¬νλ©΄ λ©λλ€. μλ₯Ό λ€μ΄, Vercel, Netlify, GitHub Pages λ± λ€μν νΈμ€ν μλΉμ€μ λ°°ν¬ν μ μμ΅λλ€.
μ΄ νλ‘μ νΈμμλ docs μ±μ GitHub Pagesμ λ°°ν¬νλλ‘ GitHub Actions μν¬νλ‘μ°κ° μ€μ λμ΄ μμ΅λλ€.
μμΈν λ΄μ©μ λ¬Έμν > λ¬Έμ νμ΄μ§ λ°°ν¬
λ¬Έμλ₯Ό μ°Έκ³ νμΈμ.