docs(ko): re-translation of korean documents (reference/*) (#4120)

pull/4123/head
Niceplugin 2 months ago committed by GitHub
parent df27e44db6
commit 3c40e9d9a8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -180,7 +180,7 @@ function sidebarReference(): DefaultTheme.SidebarItem[] {
text: '레퍼런스',
items: [
{ text: '사이트 구성', link: 'site-config' },
{ text: '머리말 구성', link: 'frontmatter-config' },
{ text: '전문(front-matter) 구성', link: 'frontmatter-config' },
{ text: '런타임 API', link: 'runtime-api' },
{ text: 'CLI', link: 'cli' },
{
@ -188,16 +188,16 @@ function sidebarReference(): DefaultTheme.SidebarItem[] {
base: '/ko/reference/default-theme-',
items: [
{ text: '개요', link: 'config' },
{ text: '네비게이션', link: 'nav' },
{ text: '네비게이션', link: 'nav' },
{ text: '사이드바', link: 'sidebar' },
{ text: '홈 페이지', link: 'home-page' },
{ text: '푸터', link: 'footer' },
{ text: '레이아웃', link: 'layout' },
{ text: '배지', link: 'badge' },
{ text: '배지(badge)', link: 'badge' },
{ text: '팀 페이지', link: 'team-page' },
{ text: '이전/다음 링크', link: 'prev-next-links' },
{ text: '편집 링크', link: 'edit-link' },
{ text: '마지막 업데이트 시간', link: 'last-updated' },
{ text: '마지막 업데이트 날짜', link: 'last-updated' },
{ text: '검색', link: 'search' },
{ text: '카본 광고', link: 'carbon-ads' }
]

@ -255,7 +255,7 @@ export default defineConfig({
}
```
이것은 기본적으로 [`postcss-prefix-selector`](https://github.com/postcss/postcss-load-config)를 사용합니다. 다음과 같이 옵션을 전달할 수 있습니다:
이것은 기본적으로 [`postcss-prefix-selector`](https://github.com/RadValentin/postcss-prefix-selector)를 사용합니다. 다음과 같이 옵션을 전달할 수 있습니다:
```js
postcssIsolateStyles({

@ -2,72 +2,72 @@
## `vitepress dev`
지정된 디렉토리를 루트로 사용하여 VitePress 개발 서버 시작. 기본값은 현재 디렉토리입니다. 현재 디렉토리에서 실행할 때는 `dev` 명령을 생략할 수도 있습니다.
지정된 디렉터리를 루트로 하여 VitePress 개발 서버를 시작합니다. 기본값은 현재 디렉터리입니다. 현재 디렉터리에서 실행할 때 `dev` 명령은 생략할 수 있습니다.
### 사용법
### 사용법 {#usage}
```sh
# 현재 디렉토리에서 시작, `dev` 생략
vitepress
# 서브 디렉토리에서 시작
# 하위 디렉터리에서 시작
vitepress dev [root]
```
### 옵션
### 옵션 {#options}
| 옵션 | 설명 |
|-----------------|-----------------------------------------|
| ---------------- | ----------------------------------------------------------------- |
| `--open [path]` | 시작 시 브라우저 열기 (`boolean \| string`) |
| `--port <port>` | 포트 지정 (`number`) |
| `--base <path>` | 공개 기본 경로 (기본값: `/`) (`string`) |
| `--base <path>` | Public 기본 경로 (기본값: `/`) (`string`) |
| `--cors` | CORS 활성화 |
| `--strictPort` | 지정된 포트가 이미 사용 중인 경우 종료 (`boolean`) |
| `--force` | 최적화기가 캐시를 무시하고 다시 번들링하도록 강제 (`boolean`) |
| `--force` | 옵티마이저가 캐시를 무시하고 다시 번들링하도록 강제 (`boolean`) |
## `vitepress build`
VitePress 사이트를 프로덕션 용으로 빌드합니다.
VitePress 사이트를 프로덕션 빌드합니다.
### 사용법
### 사용법 {#usage-1}
```sh
vitepress build [root]
```
### 옵션
### 옵션 {#options-1}
| 옵션 | 설명 |
|--------------------------------|--------------------------------------------------------------------------------------|
| `--mpa` (실험적) | 클라이언트 측 수화 없이 [MPA 모드](../guide/mpa-mode)에서 빌드 (`boolean`) |
| `--base <path>` | 공개 기본 경로 (기본값: `/`) (`string`) |
| ----------------------------- |---------------------------------------------------------------------------------------------|
| `--mpa` (실험적) | 클라이언트 측 하이드레이션 없이 [MPA 모드](../guide/mpa-mode)로 빌드 (`boolean`) |
| `--base <path>` | Public 기본 경로 (기본값: `/`) (`string`) |
| `--target <target>` | 트랜스파일 대상 (기본값: `"modules"`) (`string`) |
| `--outDir <dir>` | **cwd**에 상대적인 출력 디렉토리 (기본값: `<root>/.vitepress/dist`) (`string`) |
| `--minify [minifier]` | 미니화 활성화/비활성화하거나 사용할 미니화기를 지정 (기본값: `"esbuild"`) (`boolean \| "terser" \| "esbuild"`) |
| `--assetsInlineLimit <number>` | 바이트 단위로 정적 자산 base64 인라인 임계값 (기본값: `4096`) (`number`) |
| `--outDir <dir>` | **cwd** 기준 출력 디렉터리 (기본값: `<root>/.vitepress/dist`) (`string`) |
| `--minify [minifier]` | minify 활성화/비활성화 또는 사용할 minify 도구 지정 (기본값: `"esbuild"`) (`boolean \| "terser" \| "esbuild"`) |
| `--assetsInlineLimit <number>`| 바이트 단위의 정적 에셋 base64 인라인 임계값 (기본값: `4096`) (`number`) |
## `vitepress preview`
프로덕션 빌드를 로컬에서 미리 볼 수 있습니다.
프로덕션 빌드를 로컬에서 미리 보기 합니다.
### 사용법
### 사용법 {#usage-2}
```sh
vitepress preview [root]
```
### 옵션
### 옵션 {#options-2}
| 옵션 | 설명 |
|-----------------|--------------------------------|
| `--base <path>` | 공개 기본 경로 (기본값: `/`) (`string`) |
| ---------------- | ----------------------------------------- |
| `--base <path>` | Public 기본 경로 (기본값: `/`) (`string`) |
| `--port <port>` | 포트 지정 (`number`) |
## `vitepress init`
현재 디렉리에서 [설정 마법사](../guide/getting-started#setup-wizard) 시작.
현재 디렉리에서 [설정 마법사](../guide/getting-started#setup-wizard) 시작합니다.
### 사용법
### 사용법 {#usage-3}
```sh
vitepress init

@ -1,15 +1,15 @@
# 배지 {#badge}
배지는 헤더에 상태를 추가할 수 있게 해줍니다. 예를 들어, 섹션의 유형이나 지원되는 버전을 명시하는 것이 유용할 수 있습니다.
배지는 헤더에 상태를 추가할 수 있게 해줍니다. 예를 들어, 섹션의 타입을 지정하거나 지원되는 버전을 표시하는 데 유용할 수 있습니다.
## 사용법 {#usage}
글로벌하게 사용 가능한 `Badge` 컴포넌트를 사용할 수 있습니다.
`Badge` 컴포넌트는 전역으로 사용 가능합니다.
```html
### 제목 <Badge type="info" text="default" />
### 제목 <Badge type="tip" text="^1.9.0" />
### 제목 <Badge type="warning" text="beta" />
### 제목 <Badge type="warning" text="배타" />
### 제목 <Badge type="danger" text="주의" />
```
@ -17,22 +17,22 @@
### 제목 <Badge type="info" text="default" />
### 제목 <Badge type="tip" text="^1.9.0" />
### 제목 <Badge type="warning" text="beta" />
### 제목 <Badge type="warning" text="배타" />
### 제목 <Badge type="danger" text="주의" />
## 사용자 정의 자식 요소 {#custom-children}
## 커스텀 하위 노드 {#custom-children}
`<Badge>``children`을 받아들이며, 이는 배지 안에 표시됩니다.
`<Badge>``children`을 받아서 배지 내부에 표시합니다.
```html
### 제목 <Badge type="info">사용자 정의 요소</Badge>
### 제목 <Badge type="info">커스텀 노드</Badge>
```
### 제목 <Badge type="info">사용자 정의 요소</Badge>
### 제목 <Badge type="info">커스텀 노드</Badge>
## 타입 색상 사용자 정의 {#customize-type-color}
## 타입 색상 커스터마이징 {#customize-type-color}
css 변수를 오버라이딩함으로써 배지의 스타일을 사용자 정의할 수 있습니다. 다음은 기본값입니다:
배지의 스타일은 CSS 변수를 재정의하여 커스터마이징 할 수 있습니다. 다음은 기본값입니다:
```css
:root {
@ -56,14 +56,14 @@ css 변수를 오버라이딩함으로써 배지의 스타일을 사용자 정
## `<Badge>`
`<Badge>` 컴포넌트는 다음의 prop들을 받습니다:
`<Badge>` 컴포넌트는 다음과 같은 프로퍼티를 사용합니다:
```ts
interface Props {
// `<slot>`이 전달되면, 이 값은 무시됩니다.
// `<slot>`이 전달되면, 이 값은 무시.
text?: string
// 기본값`tip`입니다.
// 기본값: `tip`.
type?: 'info' | 'tip' | 'warning' | 'danger'
}
```

@ -1,13 +1,13 @@
# 카본 광고 {#carbon-ads}
VitePress는 [카본 광고](https://www.carbonads.net/)에 대한 내장된 네이티브 지원을 제공합니다. config에서 카본 광고 자격증명을 정의함으로써, VitePress는 페이지에 광고를 표시합니다.
VitePress는 [카본 광고](https://www.carbonads.net/)에 대한 기본적인 지원을 제공합니다. 구성에서 카본 광고 자격 증명을 정의하면 VitePress는 페이지에 광고를 표시합니다.
```js
export default {
themeConfig: {
carbonAds: {
code: '당신의-카본-코드',
placement: '당신의-카본-위치'
code: 'your-carbon-code',
placement: 'your-carbon-placement'
}
}
}
@ -19,4 +19,4 @@ export default {
`//cdn.carbonads.com/carbon.js?serve=${code}&placement=${placement}`
```
카본 광고 설정에 대해 자세히 알아보려면, [카본 광고 웹사이트](https://www.carbonads.net/)를 방문해 주십시오.
카본 광고 구성에 대해 더 알고 싶다면 [카본 광고 웹사이트](https://www.carbonads.net/)를 방문하세요.

@ -1,14 +1,14 @@
# 기본 테마 설정 {#default-theme-config}
# 기본 테마 구성 {#default-theme-config}
테마 설정을 통해 테마를 사용자 정의할 수 있습니다. 설정 파일의 `themeConfig` 옵션을 통해 테마 설정을 정의할 수 있습니다:
테마 구성은 테마를 커스텀 할 수 있게 해줍니다. 구성 파일에서 `themeConfig` 옵션을 통해 테마 구성을 정의할 수 있습니다:
```ts
export default {
lang: 'en-US',
lang: 'ko-KR',
title: 'VitePress',
description: 'Vite & Vue로 구동되는 정적 사이트 생성기.',
description: 'Vite 및 Vue로 기반 정적 사이트 생성기.',
// 테마 관련 설정.
// 테마 관련 구성.
themeConfig: {
logo: '/logo.svg',
nav: [...],
@ -17,19 +17,19 @@ export default {
}
```
**이 페이지에 문서화된 옵션은 기본 테마에만 적용됩니다.** 다른 테마는 다른 테마 설정을 기대합니다. 커스텀 테마를 사용할 때, 테마 설정 객체는 테마로 전달되어 테마가 그것에 따라 조건적인 동작을 정의할 수 있습니다.
**이 페이지에 문서화된 옵션은 기본 테마에만 적용됩니다.** 다른 테마는 다른 테마 구성이 필요합니다. 커스텀 테마를 사용하는 경우, 테마 구성 객체는 테마에 전달되어 테마가 이를 기반으로 다르게 동작할 수 있습니다.
## i18nRouting
- 타입: `boolean`
예를 들어 `zh`로 로케일을 변경하면 URL이 `/foo` (또는 `/en/foo/`)에서 `/zh/foo`로 변경됩니다. 이 동작을 비활성화하려면 `themeConfig.i18nRouting``false`로 설정하세요.
로케일을 `ko`로 변경하면 URL이 `/foo` (또는 `/en/foo/`)에서 `/ko/foo`로 변경됩니다. 이 동작을 비활성화하려면 `themeConfig.i18nRouting``false`로 설정하세요.
## logo
- 타입: `ThemeableImage`
내비게이션 바에 사이트 제목 바로 앞에 표시되는 로고 파일입니다. 경로 문자열을 받거나, 밝은/어두운 모드에 따라 다른 로고를 설정하기 위해 객체를 사용할 수 있습니다.
네비게이션 바에 사이트 제목 바로 앞에 표시할 로고 파일입니다. 경로 문자열 또는 라이트/다크 모드에 대해 다른 로고를 설정할 수 있는 객체를 사용합니다.
```ts
export default {
@ -50,7 +50,7 @@ type ThemeableImage =
- 타입: `string | false`
내비게이션에서 기본 사이트 제목(`app config`의 `title`)을 대체하기 위해 이 항목을 사용자 정의할 수 있습니다. `false`로 설정하면 내비게이션의 제목이 비활성화됩니다. `logo`가 이미 사이트 제목 텍스트를 포함하고 있을 때 유용합니다.
이 항목을 커스텀하여 네비게이션 바의 기본 사이트 제목(애플리케이션 구성의 `title`)을 대체할 수 있습니다. `false`로 설정하면 네비게이션 바에서 제목이 비활성화됩니다. 이미 사이트 제목 텍스트가 포함된 `logo` 있을 때 유용합니다.
```ts
export default {
@ -64,7 +64,7 @@ export default {
- 타입: `NavItem`
내비게이션 메뉴 항목의 설정입니다. 자세한 내용은 [기본 테마: Nav](./default-theme-nav#navigation-links)에서 확인할 수 있습니다.
네비게이션 바 메뉴 아이템의 구성입니다. 자세한 내용은 [기본 테마: 네비게이션 바](./default-theme-nav#navigation-links)를 참고하세요.
```ts
export default {
@ -112,7 +112,7 @@ interface NavItemWithChildren {
- 타입: `Sidebar`
사이드바 메뉴 항목의 설정입니다. 자세한 내용은 [기본 테마: Sidebar](./default-theme-sidebar)에서 확인할 수 있습니다.
사이드바 메뉴 항목에 대한 구성입니다. 자세한 내용은 [기본 테마: 사이드바](./default-theme-sidebar)에서 확인하세요.
```ts
export default {
@ -140,28 +140,41 @@ export interface SidebarMulti {
export type SidebarItem = {
/**
* 항목의 텍스트 레이블.
* 아이템의 텍스트 레이블
*/
text?: string
/**
* 항목의 링크.
* 아이템의 링크
*/
link?: string
/**
* 항목의 자식들.
* 아이템의 하위 항목
*/
items?: SidebarItem[]
/**
* 명시되지 않은 경우, 그룹은 접을 수 없습니다.
* 명시하지 않은 경우, 그룹을 접을 수 없습니다.
*
* `true`이면, 그룹은 접을 수 있고 기본적으로 접혀 있습니다
* `true`: 그룹은 접을 수 있고 기본적으로 접혀 있습니다.
*
* `false`이면, 그룹은 접을 수 있지만 기본적으로 펼쳐져 있습니다
* `false`: 그룹은 접을 수 있고 기본적으로 펼쳐져 있습니다.
*/
collapsed?: boolean
/**
* 하위 아이템에 대한 기본 경로입니다.
*/
base?: string
/**
* 이전/다음 페이지의 푸터에 나타나는 텍스트를 커스텀 합니다.
*/
docFooterText?: string
rel?: string
target?: string
}
```
@ -169,37 +182,37 @@ export type SidebarItem = {
- 타입: `boolean | 'left'`
- 기본값: `true`
- [frontmatter](./frontmatter-config#aside)를 통해 페이지별로 재정의 가능
- [전문](./frontmatter-config#aside)을 통해 페이지별로 재정의할 수 있습니다.
이 값을 `false`로 설정하면 aside 컨테이너의 렌더링을 방지합니다.\
이 값을 `true`로 설정하면 aside를 오른쪽에 렌더링합니다.\
이 값을 `left`로 설정하면 aside를 왼쪽에 렌더링합니다.
`false`: 어사이드 컨테이너가 렌더링되지 않습니다.\
`true`: 어사이드가 오른쪽에 렌더링됩니다.\
`left`: 어사이드가 왼쪽에 렌더링됩니다.
모든 뷰포트에 대해 비활성화하려면 `outline: false`를 사용해야 합니다.
모든 뷰포트에 비활성화하려면 `outline: false`를 사용해야 합니다.
## outline
- 타입: `Outline | Outline['level'] | false`
- [frontmatter](./frontmatter-config#outline)를 통해 페이지별로 레벨 재정의 가능
- [전문](./frontmatter-config#outline)을 사용해 각 페이지별로 계층 구조를 재정의할 수 있습니다.
이 값을 `false`로 설정하면 윤곽선 컨테이너의 렌더링을 방지합니다. 자세한 내용은 이 인터페이스를 참조하세요:
이 값을 `false`로 설정하면 아웃라인(개요) 컨테이너가 렌더링되지 않습니다. 자세한 내용은 아래 인터페이스를 참고하세요:
```ts
interface Outline {
/**
* 개요에 표시될 제목 수준.
* 단일 수치는 해당 수준의 제목만 표시됨을 의미합니다.
* 튜플이 전달되면 첫 번째 수치는 최소 수준이고 두 번째 수치는 최대 수준입니다.
* `'deep'``[2, 6]`과 동일하며, `<h2>`부터 `<h6>`까지의 모든 제목이 표시됨을 의미합니다.
* 아웃라인에 표시할 제목 레벨.
* 단일 숫자는 해당 레벨의 제목만 표시됨을 의미합니다.
* 튜플이 전달되면, 첫 번째 숫자는 최소 수준을, 두 번째 숫자는 최대 수준을 나타냅니다.
* `'deep'``[2, 6]`과 동일하며, 이는 `<h2>`에서 `<h6>`까지의 모든 제목이 표시됨을 의미합니다.
*
* @default 2
*/
level?: number | [number, number] | 'deep'
/**
* 개요에 표시될 제목.
* 아웃라인에 표시될 제목.
*
* @default '이 페이지에서'
* @default 'On this page'
*/
label?: string
}
@ -209,7 +222,7 @@ interface Outline {
- 타입: `SocialLink[]`
내비게이션에 아이콘과 함께 소셜 계정 링크를 표시하기 위해 이 옵션을 정의할 수 있습니다.
이 옵션을 정의하여 네비게이션 바에 소셜 링크를 아이콘과 함께 표시할 수 있습니다.
```ts
export default {
@ -217,14 +230,14 @@ export default {
socialLinks: [
{ icon: 'github', link: 'https://github.com/vuejs/vitepress' },
{ icon: 'twitter', link: '...' },
// SVG 문자열을 전달하여 사용자 정의 아이콘을 추가할 수도 있습니다:
// SVG를 문자열로 전달하여 커스텀 아이콘을 추가할 수도 있습니다:
{
icon: {
svg: '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Dribbble</title><path d="M12...6.38z"/></svg>'
svg: '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="m354-287 126-76 126 77-33-144 111-96-146-13-58-136-58 135-146 13 111 97-33 143ZM233-120l65-281L80-590l288-25 112-265 112 265 288 25-218 189 65 281-247-149-247 149Zm247-350Z"/></svg>'
},
link: '...',
// 접근성을 위해 사용자 정의 레이블을 포함할 수도 있습니다 (선택 사항이지만 권장됨):
ariaLabel: '멋진 링크'
// 접근성을 위해 커스텀 레이블을 포함할 수도 있습니다 (선택 사항이지만 권장됨):
ariaLabel: '스타 링크'
}
]
}
@ -256,16 +269,16 @@ type SocialLinkIcon =
## footer
- 타입: `Footer`
- [frontmatter](./frontmatter-config#footer)를 통해 페이지별로 재정의 가능
- [전문](./frontmatter-config#footer)을 사용해 페이지별로 재정의할 수 있습니다.
풋터 설정입니다. 풋터에 메시지나 저작권 텍스트를 추가할 수 있지만, 사이드바를 포함하지 않는 페이지에서만 표시됩니다. 이는 디자인 우려사항 때문입니다.
푸터 구성입니다. 메시지 또는 저작권 텍스트를 푸터에 추가할 수 있지만, 이는 페이지에 사이드바가 포함되지 않은 경우에만 표시됩니다. 이는 디자인상의 이유 때문입니다.
```ts
export default {
themeConfig: {
footer: {
message: 'MIT 라이선스에 따라 릴리즈되었습니다.',
copyright: '저작권 © 2019-현재 Evan You'
copyright: '저작권 © 2019-현재 홍길동'
}
}
}
@ -274,16 +287,16 @@ export default {
```ts
export interface Footer {
message?: string
COPYRIGHT?: string
copyright?: string
}
```
## editLink
- 타입: `EditLink`
- [frontmatter](./frontmatter-config#editlink)를 통해 페이지별로 재정의 가능
- [전문](./frontmatter-config#footer)을 사용해 페이지별로 재정의할 수 있습니다.
편집 링크를 통해 GitHub이나 GitLab과 같은 Git 관리 서비스에서 페이지를 편집하는 링크를 표시할 수 있습니다. [기본 테마: 편집 링크](./default-theme-edit-link)에서 자세한 내용을 확인하세요.
편집 링크 기능을 사용하면 GitHub 또는 GitLab과 같은 Git 관리 서비스에서 페이지를 편집할 수 있는 링크를 표시할 수 있습니다. 자세한 내용은 [기본 테마: 편집 링크](./default-theme-edit-link)를 참고하세요.
```ts
export default {
@ -307,13 +320,13 @@ export interface EditLink {
- 타입: `LastUpdatedOptions`
마지막 업데이트 텍스트와 날짜 형식을 사용자 정의할 수 있습니다.
마지막 업데이트된 날짜의 텍스트와 날짜 형식을 커스텀 할 수 있습니다.
```ts
export default {
themeConfig: {
lastUpdated: {
text: '업데이트 되었습니다',
text: '마지막 업데이트 날짜',
formatOptions: {
dateStyle: 'full',
timeStyle: 'medium'
@ -326,7 +339,7 @@ export default {
```ts
export interface LastUpdatedOptions {
/**
* @default '마지막 업데이트'
* @default 'Last updated'
*/
text?: string
@ -342,7 +355,7 @@ export interface LastUpdatedOptions {
- 타입: `AlgoliaSearch`
[Algolia DocSearch](https://docsearch.algolia.com/docs/what-is-docsearch)를 사용하여 문서 사이트를 검색할 수 있는 옵션입니다. [기본 테마: 검색](./default-theme-search)에서 자세히 알아보세요.
[Algolia DocSearch](https://docsearch.algolia.com/docs/what-is-docsearch)를 사용하여 문서 사이트를 검색할 수 있는 옵션입니다. 자세한 내용은 [기본 테마: 검색](./default-theme-search)을 참고하세요.
```ts
export interface AlgoliaSearchOptions extends DocSearchProps {
@ -376,13 +389,13 @@ export interface CarbonAdsOptions {
}
```
[기본 테마: Carbon Ads](./default-theme-carbon-ads)에서 자세히 알아보세요.
자세한 내용은 [기본 테마: 카본 광고](./default-theme-carbon-ads)를 참고하세요.
## docFooter
- 타입: `DocFooter`
영어로 문서를 작성하지 않을 때 이전 및 다음 링크 위에 나타나는 텍스트를 사용자 정의하는 데 사용할 수 있습니다. 또한 이전/다음 링크를 전역적으로 비활성화할 수 있습니다. 이전/다음 링크를 선택적으로 활성화/비활성화하려면 [frontmatter](./default-theme-prev-next-links)를 사용할 수 있습니다.
이 옵션은 이전 및 다음 링크에 표시되는 텍스트를 커스텀하는 데 사용합니다. 영어로 문서를 작성하지 않는 경우 유용합니다. 또한 이전/다음 링크를 전역적으로 비활성화할 수도 있습니다. 선택적으로 이전/다음 링크를 활성화/비활성화하려면 [전문](./default-theme-prev-next-links)을 사용합니다.
```ts
export default {
@ -405,48 +418,48 @@ export interface DocFooter {
## darkModeSwitchLabel
- 타입: `string`
- 기본값: `외관`
- 기본값: `Appearance`
어두운 모드 전환 레이블을 사용자 정의하는 데 사용할 수 있습니다. 이 레이블은 모바일 뷰에서만 표시됩니다.
이 옵션은 다크 모드 스위치 레이블을 커스텀할 때 사용합니다. 이 레이블은 모바일 뷰에서만 표시됩니다.
## lightModeSwitchTitle
- 타입: `string`
- 기본값: `라이트 테마로 전환`
- 기본값: `Switch to light theme`
호버 시 나타나는 라이트 모드 전환 제목을 사용자 정의하는 데 사용할 수 있습니다.
이 옵션은 라이트 모드 스위치 타이틀을 커스텀할 때 사용합니다. 이것은 호버(hover)할 때 나타납니다.
## darkModeSwitchTitle
- 타입: `string`
- 기본값: `어두운 테마로 전환`
- 기본값: `Switch to dark theme`
호버 시 나타나는 어두운 모드 전환 제목을 사용자 정의하는 데 사용할 수 있습니다.
호버 시 나타나는 다크 모드 스위치 타이틀을 커스텀할 때 사용합니다.
## sidebarMenuLabel
- 타입: `string`
- 기본값: `메뉴`
- 기본값: `Menu`
사이드바 메뉴 레이블을 사용자 정의하는 데 사용할 수 있습니다. 이 레이블은 모바일 뷰에서만 표시됩니다.
사이드바 메뉴 레이블을 커스텀 할 때 사용합니다. 이 레이블은 모바일 뷰에서만 표시됩니다.
## returnToTopLabel
- 타입: `string`
- 기본값: `맨 위로 돌아가기`
- 기본값: `Return to top`
맨 위로 돌아가기 버튼의 레이블을 사용자 정의하는 데 사용할 수 있습니다. 이 레이블은 모바일 뷰에서만 표시됩니다.
맨 위로 이동 버튼의 레이블을 커스텀 할 때 사용합니다. 이 레이블은 모바일 뷰에서만 표시됩니다.
## langMenuLabel
- 타입: `string`
- 기본값: `언어 변경`
- 기본값: `Change language`
내비게이션 바의 언어 토글 버튼의 aria-label을 사용자 정의하는 데 사용됩니다. [i18n](../guide/i18n)을 사용하는 경우에만 사용됩니다.
네비게이션 바에서 언어 토글 버튼의 aria-label을 커스텀 할 때 사용합니다. 이는 [i18n](../guide/i18n)을 사용하는 경우에만 사용됩니다.
## externalLinkIcon
- 타입: `boolean`
- 기본값: `false`
마크다운의 외부 링크 옆에 외부 링크 아이콘을 표시할지 여부니다.
마크다운의 외부 링크 옆에 외부 링크 아이콘을 표시할지 여부를 설정합니다.

@ -1,8 +1,8 @@
# 편집 링크 {#edit-link}
## 사이트 레벨 설정 {#site-level-config}
## 사이트 단계에서 설정하기 {#site-level-config}
편집 링크를 사용하면 GitHub이나 GitLab과 같은 Git 관리 서비스에서 페이지를 편집하는 링크를 표시할 수 있습니다. 활성화하려면, `themeConfig.editLink` 옵션을 설정에 추가하세요.
편집 링크는 GitHub, GitLab과 같은 Git 관리 서비스에서 페이지를 편집할 수 있는 링크를 표시할 수 있게 해줍니다. 이를 활성화하려면 `themeConfig.editLink` 옵션을 구성에 추가하세요.
```js
export default {
@ -16,7 +16,7 @@ export default {
`pattern` 옵션은 링크의 URL 구조를 정의하며, `:path`는 페이지 경로로 대체됩니다.
또한 [`PageData`](./runtime-api#usedata)를 인수로 받아 URL 문자열을 반환하는 순수 함수를 넣을 수도 있습니다.
또한, [`PageData`](./runtime-api#usedata)를 인자로 받아 URL 문자열을 반환하는 순수 함수를 사용할 수도 있습니다.
```js
export default {
@ -34,9 +34,9 @@ export default {
}
```
이 함수는 부작용이 없어야 하며, 범위 외의 것에 접근할 수 없으며, 브라우저에서 직렬화되어 실행됩니다.
이 함수는 브라우저에서 직렬화되어 실행되므로, 부작용을 가지지 않고 해당 스코프 외부의 어떤 것도 참조하지 않도록 해야 합니다.
기본적으로, 이 옵션은 문서 페이지 하단에 "Edit this page"라는 링크 텍스트를 추가합니다. `text` 옵션을 정의하여 이 텍스트를 사용자 정의할 수 있습니다.
기본적으로 이 설정은 문서 페이지 하단에 "Edit this page"이라는 텍스트 링크를 추가합니다. 이 텍스트는 `text` 옵션을 정의하여 커스터마이징 할 수 있습니다.
```js
export default {
@ -49,9 +49,9 @@ export default {
}
```
## 프론트매터 설정 {#frontmatter-config}
## 전문에서 설정하기 {#frontmatter-config}
프론트매터의 `editLink` 옵션을 사용하여 페이지별로 이 기능을 비활성화할 수 있습니다:
페이지별로 이 기능을 비활성화하려면, 전문에서 `editLink` 옵션을 사용하세요:
```yaml
---

@ -1,13 +1,13 @@
# 푸터 {#footer}
VitePress는 `themeConfig.footer`가 존재할 때 페이지 하단에 전역 푸터를 표시합니다.
`themeConfig.footer`가 존재하면 VitePress는 페이지 하단에 전역 푸터를 표시합니다.
```ts
export default {
themeConfig: {
footer: {
message: 'Released under the MIT License.',
copyright: 'Copyright © 2019-present Niceplugin'
message: 'MIT 라이선스에 따라 릴리즈되었습니다.',
copyright: '저작권 © 2019-현재 홍길동'
}
}
}
@ -23,28 +23,28 @@ export interface Footer {
}
```
위의 구성은 HTML 문자열도 지원합니다. 예를 들어, 푸터 텍스트에 몇 가지 링크를 구성하고 싶다면, 다음과 같이 구성을 조정할 수 있습니다:
위의 구성은 HTML 문자열도 지원합니다. 예를 들어, 푸터 텍스트에 링크를 포함하고 싶다면, 다음과 같이 구성을 수정하면 됩니다:
```ts
export default {
themeConfig: {
footer: {
message: '<a href="https://github.com/vuejs/vitepress/blob/main/LICENSE">MIT 라이선스</a>에 따라 릴리즈되었습니다.',
copyright: '저작권 © 2019-현재 <a href="https://github.com/yyx990803">Evan You</a>'
copyright: '저작권 © 2019-현재 <a href="https://github.com/niceplugin">홍길동</a>'
}
}
}
```
::: warning
`message``저작권`에는 `<p>` 요소 안에 렌더링되기 때문에 인라인 요소만 사용할 수 있습니다. 블록 요소를 추가하고 싶다면, 대신 [`layout-bottom`](../guide/extending-default-theme#layout-slots) 슬롯을 사용하는 것을 고려하세요.
`message``copyright`는 `<p>` 엘리먼트 내부에 렌더링되므로 인라인 엘리먼트만 사용할 수 있습니다. 블록 엘리먼트를 추가하려면 [`layout-bottom`](../guide/extending-default-theme#layout-slots) 슬롯을 사용하는 것이 좋습니다.
:::
푸터는 [사이드바](./default-theme-sidebar)가 보이는 경우에는 표시되지 않습니다.
[사이드바](./default-theme-sidebar)가 표시되는 경우 푸터는 표시되지 않습니다.
## 프론트매터 구성 {#frontmatter-config}
## 전문에서 설정하기 {#frontmatter-config}
이 기능은 프론트매터의 `footer` 옵션을 사용하여 페이지별로 비활성화될 수 있습니다:
이 기능은 전문의 `footer` 옵션을 사용하여 페이지별로 비활성화 할 수 있습니다.
```yaml
---

@ -1,6 +1,6 @@
# 홈 페이지 {#home-page}
VitePress 기본 테마는 홈페이지 레이아웃을 제공하며, 이 사이트의 [홈페이지](../)에서도 사용된 것을 볼 수 있습니다. [frontmatter](./frontmatter-config)에 `layout: home`을 지정함으로써 여러분의 페이지에도 이를 사용할 수 있습니다.
VitePress 기본 테마는 홈 페이지 레이아웃을 제공합니다. 이것은 이 사이트의 [홈 페이지](../)에도 사용되었습니다. `layout: home`을 [전문](./frontmatter-config)에 지정하여 어느 페이지에서도 이를 사용할 수 있습니다.
```yaml
---
@ -8,11 +8,11 @@ layout: home
---
```
하지만, 이 옵션만으로는 큰 효과를 보지 못합니다. `hero``features`와 같은 추가적인 옵션을 설정함으로써 홈페이지에 여러 가지 다른 사전 템플릿 "섹션"을 추가할 수 있습니다.
하지만 이 옵션만으로는 많은 것을 할 수 없습니다. 다행히도 `hero``features`와 같은 추가 옵션을 설정하여 홈 페이지에 다양한 사전 템플릿 "섹션"들을 추가할 수 있습니다.
## Hero 섹션 {#hero-section}
Hero 섹션은 홈페이지 맨 위에 옵니다. 여기에서 Hero 섹션을 구성하는 방법입니다.
Hero 섹션은 홈 페이지의 상단에 위치합니다. Hero 섹션을 구성하는 방법은 다음과 같습니다.
```yaml
---
@ -20,38 +20,38 @@ layout: home
hero:
name: VitePress
text: Vite & Vue로 구동되는 정적 사이트 생성기.
tagline: Lorem ipsum...
text: Vite & Vue 기반 정적 사이트 생성기
tagline: 단 몇 분 만에 마크다운을 우아한 문서로 변환
image:
src: /logo.png
alt: VitePress
actions:
- theme: brand
text: 시작하기
text: VitePress란 무엇인가?
link: /guide/what-is-vitepress
- theme: alt
text: GitHub에서 보기
text: GitHub
link: https://github.com/vuejs/vitepress
---
```
```ts
interface Hero {
// `text` 위에 표시되는 문자열입니다. 브랜드 색상이
// 함께 제공되며 제품 이름과 같이 짧을 것으로 예상됩니다.
// `text` 위에 브랜드 색상으로 표시되는 문자열.
// 제품명 등 간략한 내용을 추천.
name?: string
// hero 섹션의 주요 텍스트입니다.
// 이는 `h1` 태그로 정의됩니다.
// hero 섹션의 본문.
// `h1` 태그로 정의됨.
text: string
// `text` 아래에 표시되는 태그라인입니다.
// `text` 아래에 표시되는 슬로건 문자열.
tagline?: string
// 이미지는 텍스트 및 태그라인 영역 옆에 표시됩니다.
// `text``tagline` 옆에 표시되는 이미지.
image?: ThemeableImage
// 홈 hero 섹션에 표시할 작업 버튼들입니다.
// hero 섹션에 표시할 버튼 리스트.
actions?: HeroAction[]
}
@ -61,26 +61,26 @@ type ThemeableImage =
| { light: string; dark: string; alt?: string }
interface HeroAction {
// 버튼의 색상 테마입니다. 기본값은 `brand`입니다.
// 버튼의 색상 테마. 기본값: `brand`
theme?: 'brand' | 'alt'
// 버튼의 레이블입니다.
// 버튼의 레이블.
text: string
// 버튼의 목적지 링크입니다.
// 버튼의 목적지 링크.
link: string
// 링크 타겟 속성입니다.
// 링크의 target 어트리뷰트.
target?: string
// 링크 rel 속성입니다.
// 링크의 rel 어트리뷰트.
rel?: string
}
```
### 이름 색상 사용자 정의 {#customizing-the-name-color}
### `name` 색상 커스터마이징 {#customizing-the-name-color}
VitePress는 `name`대해 브랜드 색상 (`--vp-c-brand-1`)을 사용합니다. 하지만, `--vp-home-hero-name-color` 변수를 오버라이딩함으로써 이 색상을 사용자 정의할 수 있습니다.
VitePress는 `name`브랜드 색상(`--vp-c-brand-1`)을 사용합니다. 하지만 `--vp-home-hero-name-color` 변수를 재정의하여 이 색상을 커스텀 할 수 있습니다.
```css
:root {
@ -88,7 +88,7 @@ VitePress는 `name`에 대해 브랜드 색상 (`--vp-c-brand-1`)을 사용합
}
```
또한 `--vp-home-hero-name-background`와 결합하여 `name`에 그라데이션 색상을 부여할 수도 있습니다.
또한 `--vp-home-hero-name-background` 변수를 정의해 추가적으로 `name`을 그라데이션 색상으로 커스터마이징도 가능합니다.
```css
:root {
@ -97,11 +97,11 @@ VitePress는 `name`에 대해 브랜드 색상 (`--vp-c-brand-1`)을 사용합
}
```
## 기능 섹션 {#features-section}
## Features 섹션 {#features-section}
기능 섹션에서는 Hero 섹션 바로 다음에 보여주고 싶은 기능의 수를 제한 없이 나열할 수 있습니다. 구성하려면 frontmatter에 `features` 옵션을 전달합니다.
Features 섹션에서는 Hero 섹션 바로 아래에 표시할 각 feature를 원하는 만큼 나열할 수 있습니다. 이를 구성하려면 `features` 옵션을 전문에 전달하면 됩니다.
기능에 대해 이모지나 이미지 형태의 아이콘을 제공할 수 있습니다. 구성된 아이콘가 이미지(svg, png, jpeg...)인 경우, 적절한 너비와 높이를 가진 아이콘을 제공해야 합니다; 필요한 경우 어두운 테마 및 밝은 테마의 변형뿐만 아니라 설명, 본질적인 크기도 제공할 수 있습니다.
feature에 아이콘을 제공할 수 있으며, 이는 이모지 또는 이미지의 형태일 수 있습니다. 아이콘으로 이미지(svg, png, jpeg 등)를 사용하려면 적절한 너비와 높이를 제공해야 하며, 필요에 따라 설명, 이미지의 고유 크기, 다크 테마와 라이트 테마에 대한 변형 아이콘도 제공할 수 있습니다.
```yaml
---
@ -109,49 +109,49 @@ layout: home
features:
- icon: 🛠️
title: 항상 간단하고 최소한의
title: Simple and minimal, always
details: Lorem ipsum...
- icon:
src: /cool-feature-icon.svg
title: 또 다른 멋진 기능
title: Another cool feature
details: Lorem ipsum...
- icon:
dark: /dark-feature-icon.svg
light: /light-feature-icon.svg
title: 또 다른 멋진 기능
title: Another cool feature
details: Lorem ipsum...
---
```
```ts
interface Feature {
// 각 기능 상자에 아이콘을 표시합니다.
// 각 feature 박스에 표시할 아이콘.
icon?: FeatureIcon
// 기능의 제목입니다.
// feature의 제목.
title: string
// 기능의 세부 정보입니다.
// feature의 세부 정보.
details: string
// 기능 구성 요소에서 클릭 시 링크합니다.
// 링크는 내부 또는 외부 모두 가능합니다.
// feature 컴포넌트 클릭 시 링크.
// 링크는 내부 또는 외부 모두 가능.
//
// 예: `guide/reference/default-theme-home-page` 또는 `https://example.com`
link?: string
// 기능 구성 요소 내에서 표시될 링크 텍스트입니다.
// `link` 옵션과 함께 사용하는 것이 좋습니다.
// feature 컴포넌트 내 표시될 링크 텍스트.
// `link` 옵션과 함께 사용하는 것을 추천.
//
// 예: `더 알아보기`, `페이지 방문`,
// 예: `더 알아보기`, `페이지 방문`
linkText?: string
// `link` 옵션을 위한 링크 rel 속성입니다.
// `link` 옵션을 위한 링크 rel 어트리뷰트.
//
// 예: `external`
rel?: string
// `link` 옵션을 위한 링크 target 속성입니다.
// `link` 옵션을 위한 링크 target 어트리뷰트.
target?: string
}
@ -169,7 +169,7 @@ type FeatureIcon =
## 마크다운 컨텐츠 {#markdown-content}
`---` frontmatter 구분자 아래에 마크다운을 더함으로써 사이트의 홈페이지에 추가 컨텐츠를 추가할 수 있습니다.
홈 페이지 레이아웃에 추가 컨텐츠를 작성하려면 전문 구분선 `---` 아래에 마크다운을 추가하면 됩니다.
````md
---
@ -177,12 +177,12 @@ layout: home
hero:
name: VitePress
text: Vite & Vue로 구동되는 정적 사이트 생성기.
text: Vite & Vue 기반 정적 사이트 생성기
---
## 시작하기
`npx`를 사용하여 바로 VitePress를 사용할 수 있습니다!
`npx`를 사용하여 VitePress를 바로 시작할 수 있습니다!
```sh
npm init
@ -191,5 +191,5 @@ npx vitepress init
````
::: info
VitePress는 항상 `layout: home` 페이지의 추가 컨텐츠에 자동 스타일을 적용하지는 않았습니다. 이전 동작으로 되돌리려면, frontmatter에 `markdownStyles: false`를 추가할 수 있습니다.
`layout: home` 페이지의 추가 컨텐츠에 자동으로 기본 마크다운 스타일이 적용됩니다(영문 원서에서는 반대로 설명함). 스타일을 적용하지 않으려면 전문에 `markdownStyles: false`를 추가하면 됩니다.
:::

@ -1,12 +1,12 @@
# 마지막 업데이트 시간 {#last-updated}
# 마지막 업데이트 날짜 {#last-updated}
마지막 내용의 업데이트 시간은 페이지의 오른쪽 하단에 표시됩니다. 활성화하려면 config`lastUpdated` 옵션을 추가하세요.
마지막 업데이트 날짜는 페이지 오른쪽 하단에 표시됩니다. 이를 활성화하려면 구성 파일`lastUpdated` 옵션을 추가하세요.
::: tip
업데이트 시간을 보려면 markdown 파일을 커밋해야 합니다.
마크다운 파일을 커밋해야 업데이트된 시간을 확인할 수 있습니다.
:::
## 사이트 수준 설정 {#site-level-config}
## 사이트 단계에서 설정하기 {#site-level-config}
```js
export default {
@ -14,9 +14,9 @@ export default {
}
```
## 프런트매터 설정 {#frontmatter-config}
## 전문에서 설정하기 {#frontmatter-config}
이 기능은 frontmatter의 `lastUpdated` 옵션을 사용하여 페이지별로 비활성화할 수 있습니다:
페이지별로 이 기능을 비활성화하려면, 전문에서 `lastUpdated` 옵션을 사용하세요:
```yaml
---
@ -24,4 +24,4 @@ lastUpdated: false
---
```
자세한 내용은 [기본 테마: 마지막 업데이트 시간](./default-theme-config#lastupdated)를 참조하세요. 테마 수준에서 참 값을 설정하면 사이트 또는 페이지 수준에서 명시적으로 비활성화하지 않는 한 기능이 활성화됩니다.
자세한 내용은 [기본 테마: lastUpdated](./default-theme-config#lastupdated)를 참고하세요. 테마 레벨에서 참(truthy) 값을 설정하면, 사이트나 페이지 레벨에서 명시적으로 비활성화하지 않는 한 기능이 활성화됩니다.

@ -1,6 +1,6 @@
# 레이아웃 {#layout}
페이지 [프런트매터](./frontmatter-config)에 `layout` 옵션을 설정함으로써 페이지 레이아웃을 선택할 수 있습니다. `doc`, `page`, `home` 세 가지 레이아웃 옵션이 있습니다. 아무것도 지정하지 않으면, 해당 페이지는 `doc` 페이지로 처리됩니다.
페이지의 [전문](./frontmatter-config)에 `layout` 옵션을 설정하여 페이지 레이아웃을 선택할 수 있습니다. `doc`, `page`, `home` 세 가지 레이아웃 옵션이 있습니다. 아무것도 지정하지 않으면 `doc` 페이지로 처리됩니다.
```yaml
---
@ -8,38 +8,38 @@ layout: doc
---
```
## Doc 레이아웃 {#doc-layout}
## `doc` 레이아웃 {#doc-layout}
`doc` 옵션은 기본 레이아웃이며, 전체 마크다운 내용을 "문서화"된 모양으로 스타일링합니다. 이것은 전체 내용을 `vp-doc` css 클래스로 감싸고, 그 아래 요소들에 스타일을 적용함으로써 작동합니다.
`doc` 옵션은 기본 레이아웃으로, 전체 마크다운 콘텐츠를 "문서" 스타일로 변환합니다. 이 레이아웃은 전체 콘텐츠를 `vp-doc` CSS 클래스로 감싸고, 하위 엘리먼트에 스타일을 적용하는 방식으로 작동합니다.
`p``h2`와 같은 거의 모든 일반 요소들은 특별한 스타일링을 받습니다. 따라서 마크다운 내용 내에 사용자 정의 HTML을 추가할 경우, 이러한 스타일들에 영향을 받게 될 것임을 명심하세요.
`p``h2` 같은 거의 모든 일반적인 엘리먼트들이 특별한 스타일을 갖게 됩니다. 따라서 마크다운 콘텐츠에 커스텀 HTML을 추가할 경우, 해당 HTML도 이러한 스타일의 영향을 받게 된다는 점을 유념해야 합니다.
또한 아래 나열된 문서화 특정 기능들을 제공합니다. 이 기능들은 이 레이아웃에서만 활성화됩니다.
이 레이아웃에서는 아래에 나열된 문서 전용 기능들도 제공됩니다. 이 기능들은 오직 이 레이아웃에서만 활성화됩니다.
- 편집 링크
- 이전/다음 링크
- 개요
- 개요(outline)
- [카본 광고](./default-theme-carbon-ads)
## 페이지 레이아웃 {#page-layout}
## `page` 레이아웃 {#page-layout}
`page` 옵션은 "빈 페이지"로 처리됩니다. 마크다운은 여전히 파싱되며, 모든 [마크다운 확장](../guide/markdown) 기능은 `doc` 레이아웃과 동일하게 작동하지만, 기본 스타일은 적용받지 않습니다.
`page` 옵션은 "빈 페이지"로 처리됩니다. 마크다운은 여전히 파싱되며, 모든 [마크다운 확장 기능](../guide/markdown)이 `doc` 레이아웃과 동일하게 작동하지만, 기본 스타일링은 적용되지 않습니다.
페이지 레이아웃을 통해 VitePress 테마의 마크업 영향을 받지 않고 모든 것을 직접 스타일링할 수 있습니다. 이는 사용자 정의 페이지를 생성하고 싶을 때 유용합니다.
이 페이지 레이아웃은 VitePress 테마가 마크업에 영향을 미치지 않도록 하여, 모든 스타일을 직접 지정할 수 있게 해줍니다. 이는 커스텀 페이지를 만들고자 할 때 유용합니다.
이 레이아웃에서도 페이지가 일치하는 사이드바 구성이 있는 경우 여전히 사이드바가 표시됨을 유의하세요.
이 레이아웃에서도 페이지에 매칭되는 사이드바 구성이 있는 경우 사이드바는 여전히 표시됩니다.
## 레이아웃 {#home-layout}
## `home` 레이아웃 {#home-layout}
`home` 옵션은 템플릿화된 "홈페이지"를 생성합니다. 이 레이아웃에서는 `hero``features`와 같은 추가 옵션을 설정해 컨텐츠를 더 자세히 커스터마이즈할 수 있습니다. 자세한 내용은 [기본 테마: 홈 페이지](./default-theme-home-page)를 방문해주세요.
`home` 옵션은 템플릿화된 "홈 페이지"를 생성합니다. 이 레이아웃에서는 `hero``features` 같은 추가 옵션을 설정하여 콘텐츠를 더 커스터마이징 할 수 있습니다. 자세한 내용은 [기본 테마: 홈 페이지](./default-theme-home-page)를 참고하세요.
## 레이아웃 없음 {#no-layout}
레이아웃을 원하지 않는 경우, 프런트매터를 통해 `layout: false`를 전달할 수 있습니다. 이 옵션은 완전히 맞춤화된 랜딩 페이지(기본적으로 사이드바, 내비게이션 바, 또는 푸터 없음)를 원할 때 유용합니다.
어떤 레이아웃도 원하지 않는 경우, 전문에 `layout: false`를 전달할 수 있습니다. 이 옵션은 (기본적으로 사이드바, 네비게이션 바, 또는 푸터가 없는) 완전히 커스터마이징 가능한 랜딩 페이지를 만들고자 할 때 유용합니다.
## 사용자 정의 레이아웃 {#custom-layout}
## 커스텀 레이아웃 {#custom-layout}
또한 사용자 정의 레이아웃을 사용할 수 있습니다:
커스텀 레이아웃을 사용할 수도 있습니다:
```md
---
@ -47,7 +47,7 @@ layout: foo
---
```
이것은 컨텍스트에 등록된 `foo`라는 이름의 컴포넌트를 찾습니다. 예를 들어, `.vitepress/theme/index.ts`에서 컴포넌트를 전역으로 등록할 수 있습니다:
이것은 컨텍스트에 등록된 `foo`라는 이름의 컴포넌트를 찾습니다. 예를 들어 `.vitepress/theme/index.ts`에서 컴포넌트를 전역으로 등록할 수 있습니다:
```ts
import DefaultTheme from 'vitepress/theme'

@ -1,10 +1,10 @@
# Nav {#nav}
# 네비게이션 바 {#nav}
Nav 페이지 상단에 표시되는 내비게이션 바입니다. 사이트 제목, 전역 메뉴 링크 등을 포함하고 있습니다.
네비게이션 바는 페이지 상단에 표시되며, 사이트 제목, 전역 메뉴 링크 등이 포함됩니다.
## 사이트 제목 및 로고 {#site-title-and-logo}
기본적으로 nav는 [`config.title`](./site-config#title) 값이 참조하는 사이트 제목을 표시합니다. nav에 표시되는 내용을 변경하고 싶다면 `themeConfig.siteTitle` 옵션에 사용자 정의 텍스트를 정의할 수 있습니다.
기본적으로 네비게이션 바는 [`config.title`](./site-config#title) 값을 참조하여 사이트 제목을 표시합니다. 여기에 표시되는 내용을 변경하려면 `themeConfig.siteTitle` 옵션에 커스텀 텍스트를 정의합니다.
```js
export default {
@ -14,7 +14,7 @@ export default {
}
```
사이트에 로고가 있다면 이미지 경로를 전달하여 표시할 수 있습니다. 로고를 `public` 디렉터리에 위치시키고, 그 절대 경로를 정의해야 합니다.
사이트에 로고가 있는 경우, 이미지의 경로를 전달하여 로고를 표시할 수 있습니다. 로고는 `public` 폴더에 배치하고, 이것의 절대 경로를 정의해야 합니다.
```js
export default {
@ -24,7 +24,7 @@ export default {
}
```
로고를 추가하면 사이트 제목과 함께 표시됩니다. 로고만 필요하고 사이트 제목 텍스트를 숨기고 싶다면 `siteTitle` 옵션에 `false`를 설정하세요.
로고를 추가하면 사이트 제목과 함께 표시됩니다. 로고만 필요하고 사이트 제목 텍스트를 숨기고 싶다면, `siteTitle` 옵션을 `false`로 설정하면 됩니다.
```js
export default {
@ -35,27 +35,27 @@ export default {
}
```
`alt` 속성을 추가하거나 어두운/밝은 모드에 따라 로고를 커스터마이즈하고 싶다면 객체로써 로고를 전달할 수 있습니다. 자세한 내용은 [`themeConfig.logo`](./default-theme-config#logo)를 참하세요.
로고에 `alt` 어트리뷰트를 추가하거나 다크/라이트 모드에 따라 커스터마이징 하려면, 로고를 객체 형태로 전달해야 합니다. 자세한 내용은 [`themeConfig.logo`](./default-theme-config#logo)를 참하세요.
## 내비게이션 링크 {#navigation-links}
## 네비게이션 바 링크 {#navigation-links}
`themeConfig.nav` 옵션을 정의하여 nav에 링크를 추가할 수 있습니다.
`themeConfig.nav` 옵션을 정의하여 네비게이션 바에 링크를 추가할 수 있습니다.
```js
export default {
themeConfig: {
nav: [
{ text: '가이드', link: '/guide' },
{ text: '설정', link: '/config' },
{ text: '구성', link: '/config' },
{ text: '변경사항', link: 'https://github.com/...' }
]
}
}
```
`text`nav에 표시되는 실제 텍스트이고, `link`는 텍스트를 클릭할 때 이동할 링크입니다. 링크는 실제 파일의 경로를 `.md` 접두어 없이 설정하고 항상 `/`로 시작해야 합니다.
`text`네비게이션 바에 표시되는 실제 텍스트이며, `link`는 텍스트를 클릭했을 때 이동할 링크입니다. 링크의 경로는 `.md` 접미사 없이 실제 파일 경로로 설정하며, 항상 `/`로 시작해야 합니다.
Nav 링크는 드롭다운 메뉴일 수도 있습니다. 이를 위해 링크 옵션에 `items` 키를 설정하세요.
네비게이션 바 링크는 드롭다운 메뉴가 될 수 있습니다. 이를 위해 `link` 옵션에 `items` 키를 설정합니다.
```js
export default {
@ -75,9 +75,9 @@ export default {
}
```
드롭다운 메뉴 제목(`위 예제에서의 드롭다운 메뉴`)은 드롭다운 대화상자를 열 버튼이 되므로 `link` 속성을 가질 수 없습니다.
드롭다운 메뉴의 제목(위 예제에서 `드롭다운 메뉴`)은 드롭다운 대화 상자를 여는 버튼이 되므로 `link` 프로퍼티를 가질 수 없습니다.
더 많은 중첩된 항목을 전달하여 드롭다운 메뉴 항목에 "섹션"을 추가할 수도 있습니다.
드롭다운 메뉴 아이템에 더 많은 중첩된 아이템을 전달하여 "섹션"을 추가할 수도 있습니다.
```js
export default {
@ -116,14 +116,14 @@ export default {
### 링크의 "active" 상태 커스터마이징 {#customize-link-s-active-state}
현재 페이지가 일치하는 경로에 있을 때 Nav 메뉴 항목이 강조 표시됩니다. 매치되길 원하는 경로를 커스터마이징하고 싶다면 문자열 값으로 `activeMatch` 속성과 정규식을 정의하세요.
네비게이션 바 메뉴 아이템은 현재 페이지가 매칭되는 경로에 있을 때 강조 표시됩니다. 매칭할 경로를 커스터마이징 하려면 `activeMatch` 프로퍼티에 정규식을 문자열 값으로 정의합니다.
```js
export default {
themeConfig: {
nav: [
// 사용자가 `/config/` 경로에 있을 때
// 이 링크는 활성 상태가 됩니다.
// `/config/` 경로에 있을 때
// 이 링크는 활성화된 상태가 됩니다.
{
text: '가이드',
link: '/guide',
@ -135,22 +135,22 @@ export default {
```
::: warning
`activeMatch`는 정규식 문자열로 예상되지만, 문자열로 정의해야 합니다. 실제 RegExp 객체를 여기서 사용할 수 없는 이유는 빌드 시간 동안 직렬화가 가능하지 않기 때문입니다.
`activeMatch`는 정규식이어야 하지만, 문자열로 정의해야 합니다. 실제 RegExp 객체를 사용할 수 없는 이유는 빌드하는 동안 직렬화할 수 없기 때문입니다.
:::
### 링크의 "target" 및 "rel" 속성 커스터마이즈 {#customize-link-s-target-and-rel-attributes}
### 링크의 "target" 및 "rel" 어트리뷰트 커스터마이징 {#customize-link-s-target-and-rel-attributes}
기본적으로 VitePress는 링크가 외부 링크인지에 따라 `target``rel` 속성을 자동으로 결정합니다. 하지만 원한다면 이들도 커스터마이징할 수 있습니다.
기본적으로 VitePress는 링크가 외부 링크인지 여부에 따라 `target``rel` 어트리뷰트를 자동으로 결정합니다. 하지만 원한다면 이를 커스터마이징 할 수도 있습니다.
```js
export default {
themeConfig: {
nav: [
{
text: '상품',
text: 'GitHub 쇼핑몰',
link: 'https://www.thegithubshop.com/',
target: '_self',
rel: 'sponsored'
rel: 'sponsored' // https://developers.google.com/search/docs/crawling-indexing/qualify-outbound-links
}
]
}
@ -159,11 +159,11 @@ export default {
## 소셜 링크 {#social-links}
[`socialLinks`](./default-theme-config#sociallinks)를 참하세요.
[`socialLinks`](./default-theme-config#sociallinks)를 참하세요.
## 사용자 정의 구성 요소 {#custom-components}
## 커스텀 컴포넌트 {#custom-components}
`component` 옵션을 사용하여 탐색 모음에 사용자 정의 구성 요소를 포함할 수 있습니다. `component` 키는 Vue 구성 요소 이름이어야 하며, [Theme.enhanceApp](../guide/custom-theme#theme-interface)을 사용하여 전역으로 등록해야 합니다.
네비게이션 바에 커스텀 컴포넌트를 포함하려면 `component` 옵션을 사용하세요. `component` 키는 Vue 컴포넌트 이름이어야 하며, [Theme.enhanceApp](../guide/custom-theme#theme-interface)을 사용하여 전역으로 등록해야 합니다.
```js
// .vitepress/config.js
@ -175,7 +175,7 @@ export default {
items: [
{
component: 'MyCustomComponent',
// 구성 요소에 전달할 선택적 props
// 컴포넌트에 전달할 선택적 프로퍼티
props: {
title: 'My Custom Component'
}
@ -190,7 +190,7 @@ export default {
}
```
그런 다음, 구성 요소를 전역으로 등록해야 합니다:
그런 다음, 컴포넌트를 전역적으로 등록해야 합니다:
```js
// .vitepress/theme/index.js
@ -209,8 +209,8 @@ export default {
}
```
구성 요소가 탐색 모음에 렌더링됩니다. VitePress는 구성 요소에 다음과 같은 추가 props를 제공합니다:
컴포넌트는 네비게이션 바에 렌더링될 것입니다. VitePress는 컴포넌트에 다음과 같은 추가 프로퍼티를 제공합니다:
- `screenMenu`: 구성 요소가 모바일 탐색 메뉴 내부에 있는지 여부를 나타내는 선택적 boolean 값
- `screenMenu`: 컴포넌트가 모바일 네비게이션 바 메뉴 내부에 있는지를 나타내는 선택적 boolean 값
예제는 [여기](https://github.com/vuejs/vitepress/tree/main/__tests__/e2e/.vitepress)에서 확인할 수 있습니다.
e2e 테스트 예제를 [여기](https://github.com/vuejs/vitepress/tree/main/__tests__/e2e/.vitepress)에서 확인할 수 있습니다.

@ -1,6 +1,6 @@
# 이전 다음 링크 {#prev-next-links}
# 이전/다음 링크 {#prev-next-links}
이전 페이지와 다음 페이지에 대한 텍스트와 링크를 사용자 정의할 수 있습니다(문서 하단에 표시됨). 사이드바에 있는 텍스트와 다른 텍스트를 원하는 경우에 유용합니다. 또한, 하단부를 비활성화하거나 사이드바에 포함되지 않은 페이지로 링크하는 것이 유용할 수 있습니다.
문서 하단에 표시되는 이전 페이지와 다음 페이지의 텍스트와 링크를 커스터마이징 할 수 있습니다. 사이드바에 있는 텍스트와 다른 텍스트를 원할 경우 유용합니다. 또한 푸터를 비활성화하거나 사이드바에 포함되지 않은 페이지로 링크할 때도 유용할 수 있습니다.
## prev
@ -8,11 +8,11 @@
- 세부 사항:
이전 페이지로의 링크에 표시할 텍스트/링크를 지정합니다. frontmatter에서 이를 설정하지 않으면, 사이드바 구성에서 텍스트/링크를 추론합니다.
이전 페이지로 가는 링크에 표시할 텍스트/링크를 지정합니다. 전문에서 이 항목을 설정하지 않으면, 사이드바 구성에서 텍스트/링크가 유추됩니다.
- 예제:
- 텍스트만 사용자 정의할 경우:
- 텍스트만 커스터마이징하려면:
```yaml
---
@ -20,17 +20,17 @@
---
```
- 텍스트와 링크 모두 사용자 정의할 경우:
- 텍스트와 링크를 모두 커스터마이즈하려면:
```yaml
---
prev:
text: '마크다운'
text: '마크다운 확장 기능'
link: '/guide/markdown'
---
```
- 이전 페이지 숨기기:
- 이전 페이지를 숨기려면:
```yaml
---
@ -40,4 +40,4 @@
## next
`prev`와 동일하지만 다음 페이지에 대한 설정입니다.
`prev`와 동일하지만, 다음 페이지에 대한 설정입니다.

@ -6,7 +6,7 @@ outline: deep
## 로컬 검색 {#local-search}
VitePress는 [minisearch](https://github.com/lucaong/minisearch/)를 통해 브라우저 내 인덱스를 사용한 퍼지 전문 검색을 지원합니다. 이 기능을 활성화하려면, `.vitepress/config.ts` 파일에서 `themeConfig.search.provider` 옵션을 `'local'`로 설정하면 됩니다:
VitePress는 [minisearch](https://github.com/lucaong/minisearch/)로 브라우저 내 인덱스를 사용하는 퍼지(full-text) 검색을 지원합니다. 이 기능을 활성화하려면 `.vitepress/config.ts` 파일에서 `themeConfig.search.provider` 옵션을 `'local'`로 설정하면 됩니다:
```ts
import { defineConfig } from 'vitepress'
@ -20,15 +20,15 @@ export default defineConfig({
})
```
결과:
결과:
![검색 모달의 스크린샷](/search.png)
또는, [Algolia DocSearch](#algolia-search)나 <https://www.npmjs.com/package/vitepress-plugin-search>, <https://www.npmjs.com/package/vitepress-plugin-pagefind> 같은 커뮤니티 플러그인을 사용할 수 있습니다.
대안으로 [Algolia DocSearch](#algolia-search), <https://www.npmjs.com/package/vitepress-plugin-search>, <https://www.npmjs.com/package/vitepress-plugin-pagefind> 같은 커뮤니티 플러그인을 사용할 수 있습니다.
### i18n {#local-search-i18n}
다국어 검색을 사용하려면 다음과 같은 설정을 사용할 수 있습니다:
다국어 검색을 사용하려면 다음과 같은 구성을 사용해야 합니다:
```ts
import { defineConfig } from 'vitepress'
@ -39,24 +39,24 @@ export default defineConfig({
provider: 'local',
options: {
locales: {
zh: { // 기본 로케일을 번역하려면 이것을 `root`로 만드십시오.
ko: { // 기본 로케일을 번역하려면 이것을 `root`로 만드십시오.
translations: {
button: {
buttonText: '搜索',
buttonAriaLabel: '搜索'
buttonText: '검색',
buttonAriaLabel: '검색'
},
modal: {
displayDetails: '显示详细列表',
resetButtonTitle: '重置搜索',
backButtonTitle: '关闭搜索',
noResultsText: '没有结果',
displayDetails: '상세 목록 표시',
resetButtonTitle: '검색 지우기',
backButtonTitle: '검색 닫기',
noResultsText: '결과를 찾을 수 없습니다',
footer: {
selectText: '选择',
selectKeyAriaLabel: '输入',
navigateText: '导航',
navigateUpKeyAriaLabel: '上箭头',
navigateDownKeyAriaLabel: '下箭头',
closeText: '关闭',
selectText: '선택',
selectKeyAriaLabel: '선택하기',
navigateText: '탐색',
navigateUpKeyAriaLabel: '위로',
navigateDownKeyAriaLabel: '아래로',
closeText: '닫기',
closeKeyAriaLabel: 'esc'
}
}
@ -69,9 +69,9 @@ export default defineConfig({
})
```
### miniSearch 옵션 {#mini-search-options}
### MiniSearch 옵션 {#mini-search-options}
다음과 같이 MiniSearch를 구성할 수 있습니다:
MiniSearch를 다음과 같이 구성할 수 있습니다:
```ts
import { defineConfig } from 'vitepress'
@ -103,11 +103,11 @@ export default defineConfig({
})
```
[MiniSearch 문서](https://lucaong.github.io/minisearch/classes/MiniSearch.MiniSearch.html)에서 더 많은 정보를 얻을 수 있습니다.
더 자세한 내용은 [MiniSearch 문서](https://lucaong.github.io/minisearch/classes/MiniSearch.MiniSearch.html)를 참고하세요.
### 사용자 정의 콘텐츠 렌더러 {#custom-content-renderer}
### 커스텀 컨텐츠 렌더러 {#custom-content-renderer}
색인 생성 전에 마크다운 콘텐츠를 렌더링하는 데 사용되는 함수를 커스터마이즈할 수 있습니다:
마크다운 컨텐츠를 인덱싱하기 전에 렌더링하는 데 사용되는 함수를 커스터마이징할 수 있습니다:
```ts
import { defineConfig } from 'vitepress'
@ -131,11 +131,11 @@ export default defineConfig({
})
```
이 함수는 클라이언트 사이드 사이트 데이터에서 제거될 것이므로, 여기서 Node.js API를 사용할 수 있습니다.
이 함수는 클라이언트 사이드 사이트 데이터에서 제거되므로, Node.js API를 사용할 수 있습니다.
#### 예: 검색에서 페이지 제외 {#example-excluding-pages-from-search}
#### 예: 검색에서 페이지 제외 {#example-excluding-pages-from-search}
페이지에 `search: false`프론트매터에 추가하여 검색에서 페이지를 제외할 수 있습니다. 또는 다음과 같이 합니다:
페이지의 전문`search: false`를 추가하여 검색에서 해당 페이지를 제외할 수 있습니다. 또는:
```ts
import { defineConfig } from 'vitepress'
@ -158,10 +158,10 @@ export default defineConfig({
```
::: warning 참고
사용자 정의 `_render` 함수를 제공하는 경우, `search: false` 프론트매터를 직접 처리해야 합니다. 또한, `md.render`가 호출되기 전에 `env` 객체가 완전히 채워지지 않으므로, `frontmatter`와 같은 선택적 `env` 속성에 대한 검사는 그 이후에 수행해야 합니다.
커스텀 `_render` 함수가 제공된 경우, `search: false` 전문을 직접 처리해야 합니다. 또한, `md.render`가 호출되기 전에 `env` 객체가 완전히 채워지지 않으므로, `frontmatter`와 같은 선택적 `env` 프로퍼티에 대한 검사는 그 이후에 수행해야 합니다.
:::
#### 예: 콘텐츠 변환 - 앵커 추가 {#example-transforming-content-adding-anchors}
#### 예: 콘텐츠 변환 - 앵커 추가 {#example-transforming-content-adding-anchors}
```ts
import { defineConfig } from 'vitepress'
@ -185,7 +185,7 @@ export default defineConfig({
## Algolia 검색 {#algolia-search}
VitePress는 [Algolia DocSearch](https://docsearch.algolia.com/docs/what-is-docsearch)를 사용하여 문서 사이트 검색을 지원합니다. 시작 가이드를 참조하세요. 작동하게 하려면 `.vitepress/config.ts`에서 최소한 다음 정보를 제공해야 합니다:
VitePress는 [Algolia DocSearch](https://docsearch.algolia.com/docs/what-is-docsearch)를 사용한 문서 사이트 검색 기능을 지원합니다. 시작 가이드를 참고하세요. `.vitepress/config.ts`에서 이 기능을 사용하려면 최소한 다음 구성을 제공해야 합니다:
```ts
import { defineConfig } from 'vitepress'
@ -206,7 +206,7 @@ export default defineConfig({
### i18n {#algolia-search-i18n}
다국어 검색을 사용하려면 다음과 같은 설정을 사용할 수 있습니다:
다국어 검색을 사용하려면 다음과 같이 구성해야 합니다:
```ts
import { defineConfig } from 'vitepress'
@ -220,43 +220,43 @@ export default defineConfig({
apiKey: '...',
indexName: '...',
locales: {
zh: {
placeholder: '搜索文档',
ko: {
placeholder: '문서 검색',
translations: {
button: {
buttonText: '搜索文档',
buttonAriaLabel: '搜索文档'
buttonText: '검색',
buttonAriaLabel: '검색'
},
modal: {
searchBox: {
resetButtonTitle: '清除查询条件',
resetButtonAriaLabel: '清除查询条件',
cancelButtonText: '取消',
cancelButtonAriaLabel: '取消'
resetButtonTitle: '검색 지우기',
resetButtonAriaLabel: '검색 지우기',
cancelButtonText: '취소',
cancelButtonAriaLabel: '취소'
},
startScreen: {
recentSearchesTitle: '搜索历史',
noRecentSearchesText: '没有搜索历史',
saveRecentSearchButtonTitle: '保存至搜索历史',
removeRecentSearchButtonTitle: '从搜索历史中移除',
favoriteSearchesTitle: '收藏',
removeFavoriteSearchButtonTitle: '从收藏中移除'
recentSearchesTitle: '검색 기록',
noRecentSearchesText: '최근 검색 없음',
saveRecentSearchButtonTitle: '검색 기록에 저장',
removeRecentSearchButtonTitle: '검색 기록에서 삭제',
favoriteSearchesTitle: '즐겨찾기',
removeFavoriteSearchButtonTitle: '즐겨찾기에서 삭제'
},
errorScreen: {
titleText: '无法获取结果',
helpText: '你可能需要检查你的网络连接'
titleText: '결과를 가져올 수 없습니다',
helpText: '네트워크 연결을 확인하세요'
},
footer: {
selectText: '选择',
navigateText: '切换',
closeText: '关闭',
searchByText: '搜索提供者'
selectText: '선택',
navigateText: '탐색',
closeText: '닫기',
searchByText: '검색 기준'
},
noResultsScreen: {
noResultsText: '无法找到相关结果',
suggestedQueryText: '你可以尝试查询',
reportMissingResultsText: '你认为该查询应该有结果?',
reportMissingResultsLinkText: '点击反馈'
noResultsText: '결과를 찾을 수 없습니다',
suggestedQueryText: '새로운 검색을 시도할 수 있습니다',
reportMissingResultsText: '해당 검색어에 대한 결과가 있어야 합니까?',
reportMissingResultsLinkText: '피드백 보내기 클릭'
}
}
}
@ -268,11 +268,11 @@ export default defineConfig({
})
```
[이 옵션들](https://github.com/vuejs/vitepress/blob/main/types/docsearch.d.ts)은 덮어쓸 수 있습니다. 공식 Algolia 문서에서 더 많은 정보를 알아보세요.
[이 옵션들](https://github.com/vuejs/vitepress/blob/main/types/docsearch.d.ts)은 재작성 할 수 있습니다. 이에 대해 자세히 알고 싶다면 Algolia 공식 문서를 참고하세요.
### 크롤러 구성 {#crawler-config}
이 사이트가 사용하는 것을 기반으로 한 예제 구성입니다:
이 사이트에서 사용하는 예제 구성을 소개합니다:
```ts
new Crawler({
@ -285,7 +285,7 @@ new Crawler({
exclusionPatterns: [],
ignoreCanonicalTo: false,
discoveryPatterns: ['https://vitepress.dev/**'],
schedule: '매주 토요일 05:10에',
schedule: 'at 05:10 on Saturday',
actions: [
{
indexName: 'vitepress',
@ -297,7 +297,7 @@ new Crawler({
content: '.content p, .content li',
lvl0: {
selectors: '',
defaultValue: '문서'
defaultValue: 'Documentation'
},
lvl2: '.content h2',
lvl3: '.content h3',

@ -1,6 +1,6 @@
# 사이드바 {#sidebar}
사이드바는 문서의 주요 탐색 블록입니다. 사이드바 메뉴를 [`themeConfig.sidebar`](./default-theme-config#sidebar)에서 설정할 수 있습니다.
사이드바는 문서의 기본 탐색 블록입니다. [`themeConfig.sidebar`](./default-theme-config#sidebar)에서 사이드바 메뉴를 구성할 수 있습니다.
```js
export default {
@ -19,9 +19,9 @@ export default {
}
```
## 기 {#the-basics}
## 기본 사용법 {#the-basics}
사이드바 메뉴의 가장 간단한 형태는 링크의 단일 배열을 전달하는 것입니다. 첫 번째 레벨 아이템은 사이드바의 "섹션"을 정의합니다. 해당 섹션의 제목인 `text`와 실제 탐색 링크인 `items`를 포함해야 합니다.
사이드바 메뉴의 가장 간단한 형태는 링크 배열을 전달하는 것입니다. 첫 번째 계층 아이템은 사이드바의 "섹션"을 정의합니다. 이 섹션에는 제목인 `text`와 실제 탐색 링크인 `items`가 포함되어야 합니다.
```js
export default {
@ -48,7 +48,7 @@ export default {
}
```
`link``/`로 시작하는 실제 파일 경로를 지정해야 합니다. 링크 끝에 슬래시를 추가하면 해당 디렉리의 `index.md`를 보여줍니다.
`link``/`로 시작하는 실제 파일 경로를 지정해야 합니다. 링크 끝에 슬래시를 추가하면 해당 디렉리의 `index.md`를 보여줍니다.
```js
export default {
@ -66,20 +66,20 @@ export default {
}
```
루트 레벨부터 시작해서 최대 6레벨 깊이까지 사이드바 아이템을 중첩할 수 있습니다. 6레벨 이상 중첩된 아이템은 무시되며 사이드바에 표시되지 않습니다.
사이드바 아이템을 루트 단계에서 최대 6단계까지 중첩할 수 있습니다. 6단계를 초과하는 중첩 아이템은 무시되며 사이드바에 표시되지 않습니다.
```js
export default {
themeConfig: {
sidebar: [
{
text: '레벨 1',
text: '1단계',
items: [
{
text: '레벨 2',
text: '2단계',
items: [
{
text: '레벨 3',
text: '3단계',
items: [
...
]
@ -93,11 +93,11 @@ export default {
}
```
## 다중 사이드바 {#multiple-sidebars}
## 여러 사이드바 {#multiple-sidebars}
페이지 경로에 따라 다른 사이드바를 표시할 수 있습니다. 예를 들어, 이 사이트에 표시된 것과 같이 "가이드" 페이지와 "설정" 페이지와 같이 문서의 콘텐츠 섹션을 별도로 생성할 수 있습니다.
페이지 경로에 따라 다른 사이드바를 표시할 수 있습니다. 예를 들어 이 사이트처럼 문서의 각 섹션을 "가이드"와 "레퍼런스" 페이지에 따라 별도로 만들고 싶을 수 있습니다.
이를 위해 먼저 각 원하는 섹션에 대한 디렉토리로 페이지를 구성합니다:
이를 위해 먼저 각 섹션 디렉터리로 페이지를 구성합니다:
```
.
@ -111,32 +111,32 @@ export default {
└─ four.md
```
다음, 구성을 업데이트하여 각 섹션에 대한 사이드바를 정의합니다. 이때, 배열 대신 객체를 전달해야 합니다.
런 다음 각 섹션에 대한 사이드바를 정의하도록 구성 파일을 업데이트합니다. 이런 경우에는 배열 대신 객체를 전달해야 합니다.
```js
export default {
themeConfig: {
sidebar: {
// 이 사이드바는 사용자
// 이 사이드바는 유저
// `guide` 디렉토리에 있을 때 표시됩니다.
'/guide/': [
{
text: '가이드',
items: [
{ text: '인덱스', link: '/guide/' },
{ text: '개요', link: '/guide/' },
{ text: '하나', link: '/guide/one' },
{ text: '둘', link: '/guide/two' }
]
}
],
// 이 사이드바는 사용자
// 이 사이드바는 유저
// `config` 디렉토리에 있을 때 표시됩니다.
'/config/': [
{
text: '설정',
items: [
{ text: '인덱스', link: '/config/' },
{ text: '개요', link: '/config/' },
{ text: '셋', link: '/config/three' },
{ text: '넷', link: '/config/four' }
]
@ -149,7 +149,7 @@ export default {
## 접을 수 있는 사이드바 그룹 {#collapsible-sidebar-groups}
사이드바 그룹에 `collapsed` 옵션을 추가하면 각 섹션을 숨기기/보이기 위한 토글 버튼이 나타납니다.
사이드바 그룹에 `collapsed` 옵션을 추가하면 각 섹션을 접거나 펼칠 수 있는 토글 버튼이 표시됩니다.
```js
export default {
@ -165,7 +165,7 @@ export default {
}
```
모든 섹션은 기본적으로 "열림" 상태입니다. 초기 페이지 로드 시 "닫힘" 상태로 하고 싶다면 `collapsed` 옵션을 `true`로 설정하세요.
모든 섹션은 기본적으로 "열림" 상태입니다. 초기 페이지 로드 시 "닫힘" 상태로 두려면 `collapsed` 옵션을 `true`로 설정합니다.
```js
export default {
@ -183,7 +183,7 @@ export default {
## `useSidebar` <Badge type="info" text="composable" />
사이드바 관련 데이터를 반환합니다. 반환된 객체는 다음과 같은 유형을 가집니다:
사이드바 관련 데이터를 반환합니다. 반환된 객체는 다음과 같은 타입을 가집니다:
```ts
export interface DocSidebar {

@ -5,7 +5,7 @@ const members = [
{
avatar: 'https://github.com/yyx990803.png',
name: 'Evan You',
title: '창작자',
title: 'Creator',
links: [
{ icon: 'github', link: 'https://github.com/yyx990803' },
{ icon: 'twitter', link: 'https://twitter.com/youyuxi' }
@ -14,7 +14,7 @@ const members = [
{
avatar: 'https://github.com/kiaking.png',
name: 'Kia King Ishii',
title: '개발자',
title: 'Developer',
links: [
{ icon: 'github', link: 'https://github.com/kiaking' },
{ icon: 'twitter', link: 'https://twitter.com/KiaKing85' }
@ -25,11 +25,11 @@ const members = [
# 팀 페이지 {#team-page}
팀을 소개하고 싶다면, 팀 페이지를 구성하기 위해 Team 컴포넌트를 사용할 수 있습니다. 이러한 컴포넌트를 사용하는 방법에는 두 가지가 있습니다. 하나는 문서 페이지에 포함시키는 것이고, 다른 하나는 전체 팀 페이지를 만드는 것입니다.
팀을 소개하고자 할 때, 팀 컴포넌트를 사용하여 팀 페이지를 구성할 수 있습니다. 이 컴포넌트를 사용하는 방법은 두 가지가 있습니다. 하나는 문서 페이지에 포함시키는 방법이고, 다른 하나는 전체 팀 페이지를 만드는 방법입니다.
## 페이지에서 팀 멤버 보여주기 {#show-team-members-in-a-page}
## 페이지에서 팀 구성원 보여주기 {#show-team-members-in-a-page}
`vitepress/theme`에서 제공되는 `<VPTeamMembers>` 컴포넌트를 사용하여 어떤 페이지에서든 팀 멤버 목록을 표시할 수 있습니다.
`vitepress/theme`에서 제공되는 `<VPTeamMembers>` 컴포넌트를 사용하여, 어떤 페이지에서도 팀 구성원 목록을 표시할 수 있습니다.
```html
<script setup>
@ -39,7 +39,7 @@ const members = [
{
avatar: 'https://www.github.com/yyx990803.png',
name: 'Evan You',
title: '창작자',
title: 'Creator',
links: [
{ icon: 'github', link: 'https://github.com/yyx990803' },
{ icon: 'twitter', link: 'https://twitter.com/youyuxi' }
@ -49,28 +49,28 @@ const members = [
]
</script>
# 우리 팀
# Our Team
우리 훌륭한 팀을 만나보세요.
Say hello to our awesome team.
<VPTeamMembers size="small" :members="members" />
```
위 코드는 카드 형태의 요소로 팀 멤버를 표시합니다. 아래와 비슷하게 표시될 것입니다.
위 코드는 카드 형태의 엘리먼트로 팀 구성원을 표시합니다. 아래와 비슷한 형태로 표시됩니다.
<VPTeamMembers size="small" :members="members" />
`<VPTeamMembers>` 컴포넌트는 `small``medium`의 두 가지 다른 크기로 제공됩니다. 선호도에 달렸지만, 보통 문서 페이지에서 사용할 때는 `small` 크기가 더 잘 맞을 것입니다. 또한 "description"이나 "sponsor" 버튼을 추가하는 등 각 멤버에 대해 더 많은 속성을 추가할 수 있습니다. [`<VPTeamMembers>`](#vpteammembers)에서 더 자세히 알아보세요.
`<VPTeamMembers>` 컴포넌트는 `small``medium` 두 가지 크기로 제공됩니다. 개인의 선호도에 따라 선택할 수 있지만, 일반적으로 `small` 사이즈가 문서 페이지에 더 적합합니다. 또한, 각 구성원에 "설명"이나 "후원" 버튼과 같은 프로퍼티를 추가할 수도 있습니다. 자세한 내용은 [`<VPTeamMembers>`](#vpteammembers)에서 확인할 수 있습니다.
문서 페이지에 팀 멤버를 포함시키는 것은 전용 전체 팀 페이지를 만드는 것이 너무 과한 경우나, 문서 맥락을 참조로 일부 멤버를 소개할 때 좋습니다.
문서 페이지에 팀 구성원을 포함시키는 것은 전용 팀 페이지를 만드는 것이 과할 수 있는 소규모 팀이나, 문서의 맥락에 따라 일부 구성원을 소개할 때 좋습니다.
멤버 수가 많거나, 멤버를 보여주기 위해 더 많은 공간을 원한다면 [전체 팀 페이지 만들기](#create-a-full-team-page)를 고려해보세요.
만약 많은 수의 구성원이 있거나, 팀 구성원을 보여줄 더 많은 공간이 필요하다면, [전체 팀 페이지 만들기](#create-a-full-team-page)를 고려해 보세요.
## 전체 팀 페이지 만들기 {#create-a-full-team-page}
문서 페이지에 팀 멤버를 추가하는 대신, 전체 팀 페이지를 만들 수도 있습니다. 사용자 지정 [홈 페이지](./default-theme-home-page)를 생성하는 방법과 유사합니다.
팀 구성원을 문서 페이지에 추가하는 대신, 전체 팀 페이지를 만들어 [홈 페이지](./default-theme-home-page)를 커스텀하는 것처럼 팀 페이지를 만들 수도 있습니다.
팀 페이지를 생성하려면 먼저, 새 md 파일을 만듭니다. 파일 이름은 중요하지 않지만, 여기서는 `team.md`라고 하겠습니다. 이 파일에서 frontmatter 옵션 `layout: page`를 설정한 다음, `TeamPage` 컴포넌트를 사용하여 페이지 구조를 구성합니다.
팀 페이지를 만들려면, 먼저 새로운 마크다운 파일을 생성하세요. 파일 이름은 중요하지 않지만, 여기서는 `team.md`라고 부르겠습니다. 이 파일에서 전문 옵션에 `layout: page`를 설정한 후, `TeamPage` 컴포넌트를 사용하여 페이지 구조를 구성합니다.
```html
---
@ -87,7 +87,7 @@ const members = [
{
avatar: 'https://www.github.com/yyx990803.png',
name: 'Evan You',
title: '창작자',
title: 'Creator',
links: [
{ icon: 'github', link: 'https://github.com/yyx990803' },
{ icon: 'twitter', link: 'https://twitter.com/youyuxi' }
@ -100,11 +100,11 @@ const members = [
<VPTeamPage>
<VPTeamPageTitle>
<template #title>
우리 팀
Our Team
</template>
<template #lead>
VitePress의 개발은 국제적인
팀에 의해 지도되며, 그 중 일부는 아래에 소개되어 있습니다.
The development of VitePress is guided by an international
team, some of whom have chosen to be featured below.
</template>
</VPTeamPageTitle>
<VPTeamMembers
@ -113,17 +113,17 @@ const members = [
</VPTeamPage>
```
전체 팀 페이지를 생성할 때는 모든 컴포넌트를 `<VPTeamPage>` 컴포넌트로 감싸야 합니다. 이 컴포넌트는 공간 구조와 같은 적절한 레이아웃 구조를 팀 관련 컴포넌트에 적용할 것입니다.
전체 팀 페이지를 만들 때는 모든 컴포넌트를 `<VPTeamPage>` 컴포넌트로 감싸야 합니다. 이 컴포넌트는 중첩된 팀 관련 컴포넌트들이 적절한 레이아웃 구조와 간격을 갖도록 합니다.
`<VPPageTitle>` 컴포넌트는 페이지 제목 섹션을 추가합니다. 제목은 `<h1>` 헤딩입니다. 팀에 대해 문서화하려면 `#title``#lead` 슬롯을 사용하십시오.
`<VPPageTitle>` 컴포넌트는 페이지 제목 섹션을 추가합니다. 제목은 `<h1>` 헤딩으로 표시됩니다. `#title``#lead` 슬롯을 사용하여 팀에 대한 설명을 작성할 수 있습니다.
`<VPMembers>`는 문서 페이지에서 사용할 때와 동일하게 작동합니다. 회원 목록을 표시합니다.
`<VPMembers>` 컴포넌트는 문서 페이지에서 사용할 때와 동일하게 작동하며, 팀 구성원 목록을 표시합니다.
### 팀 멤버를 구분하기 위한 섹션 추가 {#add-sections-to-divide-team-members}
### 팀 구성원을 구분하기 위한 섹션 추가 {#add-sections-to-divide-team-members}
팀 페이지에 "섹션"을 추가할 수 있습니다. 예를 들어, 코어 팀 멤버와 커뮤니티 파트너와 같은 다양한 유형의 팀 멤버가 있을 수 있습니다. 이러한 멤버를 섹션으로 나누어 각 그룹의 역할을 더 잘 설명할 수 있습니다.
팀 페이지에 "섹션"을 추가할 수도 있습니다. 예를 들어, 핵심 팀 구성원과 커뮤니티 파트너와 같은 다양한 유형의 팀 구성원이 있을 수 있습니다. 이 구성원들을 섹션으로 나누어 각 그룹의 역할을 더 잘 설명할 수 있습니다.
이를 위해 이전에 만든 `team.md` 파일에 `<VPTeamPageSection>` 컴포넌트를 추가하십시오.
이를 위해 이전에 만든 `team.md` 파일에 `<VPTeamPageSection>` 컴포넌트를 추가하세요.
```html
---
@ -143,12 +143,12 @@ const partners = [...]
<VPTeamPage>
<VPTeamPageTitle>
<template #title>우리 팀</template>
<template #title>Our Team</template>
<template #lead>...</template>
</VPTeamPageTitle>
<VPTeamMembers size="medium" :members="coreMembers" />
<VPTeamPageSection>
<template #title>파트너</template>
<template #title>Partners</template>
<template #lead>...</template>
<template #members>
<VPTeamMembers size="small" :members="partners" />
@ -157,13 +157,13 @@ const partners = [...]
</VPTeamPage>
```
`<VPTeamPageSection>` 컴포넌트는 `VPTeamPageTitle` 컴포넌트와 유사하게 `#title``#lead` 슬롯을 가질 수 있으며, 팀 멤버를 표시하기 위한 `#members` 슬롯도 가질 수 있습니다.
`<VPTeamPageSection>` 컴포넌트는 `VPTeamPageTitle` 컴포넌트처럼 `#title``#lead` 슬롯을 가질 수 있으며, 팀 구성원을 표시하기 위한 `#members` 슬롯도 있습니다.
`#members` 슬롯 안에 `<VPTeamMembers>` 컴포넌트를 넣는 것을 잊지 마십시오.
`#members` 슬롯 내부에는 `<VPTeamMembers>` 컴포넌트를 추가해야 합니다.
## `<VPTeamMembers>`
`<VPTeamMembers>` 컴포넌트는 주어진 멤버 목록을 표시합니다.
`<VPTeamMembers>` 컴포넌트는 주어진 팀 구성원 목록을 표시합니다.
```html
<VPTeamMembers
@ -178,63 +178,63 @@ const partners = [...]
```ts
interface Props {
// 각 회원의 크기입니다. 기본값은 `medium`입니다.
// 각 구성원 사이즈. 기본값: `medium`
size?: 'small' | 'medium'
// 표시할 회원 목록입니다.
// 표시할 구성원 목록.
members: TeamMember[]
}
interface TeamMember {
// 회원의 아바타 이미지입니다.
// 구성원 아바타 이미지.
avatar: string
// 회원의 이름입니다.
// 구성원 이름.
name: string
// 회원 이름 아래에 표시될 직함입니다.
// 구성원 이름 아래에 표시될 직함.
// 예: 개발자, 소프트웨어 엔지니어 등
title?: string
// 회원이 속한 조직입니다.
// 구성원이 속한 조직.
org?: string
// 조직의 URL입니다.
// 조직의 URL.
orgLink?: string
// 회원에 대한 설명입니다.
// 구성원에 대한 설명.
desc?: string
// 소셜 링크입니다. 예: GitHub, Twitter 등.
// 여기에 소셜 링크 객체를 전달할 수 있습니다.
// 참: https://vitepress.dev/ko/reference/default-theme-config.html#sociallinks
// 소셜 링크. 예: GitHub, Twitter 등.
// 소셜 링크 객체를 전달해야 함.
// 참: https://vitepress.dev/ko/reference/default-theme-config.html#sociallinks
links?: SocialLink[]
// 회원의 후원 페이지 URL입니다.
// 구성원의 후원 페이지 URL.
sponsor?: string
// 후원 링크의 텍스트입니다. 기본값은 'Sponsor'입니다.
// 후원 링크 텍스트. 기본값: 'Sponsor'
actionText?: string
}
```
## `<VPTeamPage>`
전체 팀 페이지를 생성할 때 기본 컴포넌트입니다. 단일 슬롯만 허용합니다. 전달된 모든 팀 관련 컴포넌트에 적절한 스타일을 적용합니다.
전체 팀 페이지를 만들 때 사용하는 루트 컴포넌트입니다. 단일 슬롯만 허용하며, 전달된 모든 팀 관련 컴포넌트에 스타일을 적용합니다.
## `<VPTeamPageTitle>`
페이지의 "제목" 섹션을 추가합니다. `<VPTeamPage>` 아래에서 맨 처음 사용하는 것이 가장 좋습니다. `#title``#lead` 슬롯을 받습니다.
페이지의 "제목" 섹션을 추가합니다. `<VPTeamPage>` 아래 맨 처음 사용하는 것이 가장 좋습니다. `#title``#lead` 슬롯이 있습니다.
```html
<VPTeamPage>
<VPTeamPageTitle>
<template #title>
우리 팀
Our Team
</template>
<template #lead>
VitePress의 개발은 국제적인
팀에 의해 지도되며, 그 중 일부는 아래에 소개되어 있습니다.
The development of VitePress is guided by an international
team, some of whom have chosen to be featured below.
</template>
</VPTeamPageTitle>
</VPTeamPage>
@ -242,13 +242,13 @@ interface TeamMember {
## `<VPTeamPageSection>`
팀 페이지 내에 "섹션"을 생성합니다. `#title`, `#lead`, 그리고 `#members` 슬롯을 받습니다. `<VPTeamPage>` 안에 원하는 만큼 많은 섹션을 추가할 수 있습니다.
팀 페이지 내에 "섹션"을 생성합니다. `#title`, `#lead`, `#members` 슬롯이 있습니다. `<VPTeamPage>` 안에 원하는 만큼 섹션을 추가할 수 있습니다.
```html
<VPTeamPage>
...
<VPTeamPageSection>
<template #title>파트너</template>
<template #title>Partners</template>
<template #lead>Lorem ipsum...</template>
<template #members>
<VPTeamMembers :members="data" />

@ -2,20 +2,20 @@
outline: deep
---
# 프론트매터 구성 {#frontmatter-config}
# 전문 구성 {#frontmatter-config}
프론트매터(머리말)는 페이지 기반 구성을 가능하게 합니다. 모든 마크다운 파일에서, 사이트 수준 또는 테마 수준의 구성 옵션을 재정의하기 위해 프론트매터 구성을 사용할 수 있습니다. 또한, 프론트매터에서만 정의할 수 있는 구성 옵션이 있습니다.
전문은 페이지 기반 구성을 가능하게 합니다. 각 마크다운 파일에서 전문 구성을 사용하여 사이트 수준 또는 테마 수준의 구성 옵션을 재정의할 수 있습니다. 또한, 전문에서만 정의할 수 있는 구성 옵션도 있습니다.
사용 예:
사용 예:
```md
---
title: VitePress로 문서화
title: Docs with VitePress
editLink: true
---
```
Vue 표현식에서 `$frontmatter` 전역을 통해 프론트매터 데이터에 접근할 수 있습니다:
Vue 표현식에서 `$frontmatter` 전역 변수를 통해 전문 데이터에 접근할 수 있습니다:
```md
{{ $frontmatter.title }}
@ -23,9 +23,9 @@ Vue 표현식에서 `$frontmatter` 전역을 통해 프론트매터 데이터에
## title
- 유형: `string`
- 타입: `string`
페이지의 제목입니다. [config.title](./site-config#title)과 동일하며, 사이트 수준의 구성을 재정의합니다.
페이지의 제목입니다. [config.title](./site-config#title)과 동일하며, 사이트 레벨의 구성을 재정의합니다.
```yaml
---
@ -35,22 +35,22 @@ title: VitePress
## titleTemplate
- 유형: `string | boolean`
- 타입: `string | boolean`
제목의 접미사입니다. [config.titleTemplate](./site-config#titletemplate)와 동일하며, 사이트 수준의 구성을 재정의합니다.
제목의 접미사입니다. [config.titleTemplate](./site-config#titletemplate)와 동일하며, 사이트 레벨의 구성을 재정의합니다.
```yaml
---
title: VitePress
titleTemplate: Vite & Vue로 구동되는 정적 사이트 생성기
titleTemplate: Vite & Vue powered static site generator
---
```
## description
- 유형: `string`
- 타입: `string`
페이지의 설명입니다. [config.description](./site-config#description)과 동일하며, 사이트 수준의 구성을 재정의합니다.
페이지의 설명입니다. [config.description](./site-config#description)과 동일하며, 사이트 레벨의 구성을 재정의합니다.
```yaml
---
@ -60,19 +60,19 @@ description: VitePress
## head
- 유형: `HeadConfig[]`
- 타입: `HeadConfig[]`
현재 페이지에 삽입할 추가 head 태그를 지정합니다. 사이트 수준 구성에 의해 삽입된 head 태그들 이후에 추가됩니다.
현재 페이지에 삽입할 추가 head 태그를 지정합니다. 사이트 수준 구성에 의해 삽입된 head 태그에 추가됩니다.
```yaml
---
head:
- - meta
- name: description
content: 안녕하세요
content: hello
- - meta
- name: keywords
content: 슈퍼 두퍼 SEO
content: super duper SEO
---
```
@ -84,18 +84,18 @@ type HeadConfig =
## 기본 테마 전용 {#default-theme-only}
다음 프론트매터 옵션은 기본 테마를 사용할 때만 적용됩니다.
다음 전문 옵션은 기본 테마를 사용할 때만 적용됩니다.
### layout
- 유형: `doc | home | page`
- 타입: `doc | home | page`
- 기본값: `doc`
페이지의 레이아웃을 결정합니다.
- `doc` - 마크다운 텐츠에 기본 문서 스타일을 적용합니다.
- `home` - "홈 페이지"를 위한 특별한 레이아웃입니다. `hero``features`와 같은 추가 옵션을 추가하여 아름다운 랜딩 페이지를 빠르게 만들 수 있습니다.
- `page` - `doc`비슷하게 동작하지만 콘텐츠에 스타일을 적용하지 않습니다. 완전히 사용자 정의된 페이지를 만들고 싶을 때 유용합니다.
- `doc` - 마크다운 텐츠에 기본 문서 스타일을 적용합니다.
- `home` - "홈 페이지"를 위한 특별 레이아웃입니다. 아름다운 랜딩 페이지를 빠르게 만들기 위해 `hero``features`와 같은 옵션을 추가할 수 있습니다.
- `page` - `doc`유사하게 작동하지만 콘텐츠에 스타일을 적용하지 않습니다. 완전히 커스텀 페이지를 만들 때 유용합니다.
```yaml
---
@ -105,18 +105,18 @@ layout: doc
### hero <Badge type="info" text="홈 페이지 전용" />
`layout``home`으로 설정될 때 홈 히어로 섹션의 내용을 정의합니다. [기본 테마: 홈 페이지](./default-theme-home-page)에서 자세한 내용을 확인할 수 있습니다.
`layout``home`으로 설정된 경우, 홈 히어로 섹션의 내용을 정의합니다. 자세한 내용은 [기본 테마: 홈 페이지](./default-theme-home-page)에서 확인할 수 있습니다.
### features <Badge type="info" text="홈 페이지 전용" />
`layout``home`으로 설정될 때 기능 섹션에 표시할 항목을 정의합니다. [기본 테마: 홈 페이지](./default-theme-home-page)에서 자세한 내용을 확인할 수 있습니다.
`layout``home`으로 설정된 경우, 기능 섹션에 표시할 항목을 정의합니다. 자세한 내용은 [기본 테마: 홈 페이지](./default-theme-home-page)에서 확인할 수 있습니다.
### navbar
- 유형: `boolean`
- 타입: `boolean`
- 기본값: `true`
[navbar](./default-theme-nav)를 표시할지 여부입니다.
[네비게이션 바](./default-theme-nav)를 표시할지 여부를 설정합니다.
```yaml
---
@ -126,10 +126,10 @@ navbar: false
### sidebar
- 유형: `boolean`
- 타입: `boolean`
- 기본값: `true`
[sidebar](./default-theme-sidebar)를 표시할지 여부입니다.
[사이드바](./default-theme-sidebar)를 표시할지 여부를 설정합니다.
```yaml
---
@ -139,14 +139,14 @@ sidebar: false
### aside
- 유형: `boolean | 'left'`
- 타입: `boolean | 'left'`
- 기본값: `true`
`doc` 레이아웃에서 aside 컴포넌트의 위치를 정의합니다.
`doc` 레이아웃에서 어사이드(aside) 컴포넌트의 위치를 정의합니다.
이 값을 `false`로 설정하면 aside 컨테이너가 렌더링되지 않습니다.\
이 값을 `true`로 설정하면 aside가 오른쪽에 렌더링됩니다.\
이 값을 `'left'`로 설정하면 aside가 왼쪽에 렌더링됩니다.
이 값을 `false`로 설정하면 어사이드 컨테이너가 렌더링되지 않습니다.\
이 값을 `true`로 설정하면 어사이드를 오른쪽에 렌더링합니다.\
이 값을 `'left'`로 설정하면 어사이드를 왼쪽에 렌더링합니다.
```yaml
---
@ -156,17 +156,17 @@ aside: false
### outline
- 유형: `number | [number, number] | 'deep' | false`
- 타입: `number | [number, number] | 'deep' | false`
- 기본값: `2`
페이지에 표시할 개요의 헤더 레벨입니다. [config.themeConfig.outline.level](./default-theme-config#outline)과 동일하며, 사이트 수준 구성에서 설정 값을 재정의합니다.
페이지에 표시할 아웃라인(개요) 헤더의 레벨을 설정합니다. [config.themeConfig.outline.level](./default-theme-config#outline)과 동일하며, 사이트 수준 구성에서 설정 값을 재정의합니다.
### lastUpdated
- 유형: `boolean | Date`
- 타입: `boolean | Date`
- 기본값: `true`
현재 페이지의 바닥글에 [마지막 업데이트](./default-theme-last-updated) 텍스트를 표시할지 여부입니다. 날짜와 시간이 지정되면 마지막 git 수정 타임스탬프 대신 표시됩니다.
현재 페이지의 푸터에 [마지막 업데이트 날짜](./default-theme-last-updated) 텍스트를 표시할지 여부를 설정합니다. 날짜/시간이 지정되면 마지막 git 수정 타임스탬프 대신 해당 날짜/시간이 표시됩니다.
```yaml
---
@ -176,10 +176,10 @@ lastUpdated: false
### editLink
- 유형: `boolean`
- 타입: `boolean`
- 기본값: `true`
현재 페이지의 바닥글에 [편집 링크](./default-theme-edit-link)를 표시할지 여부입니다.
현재 페이지의 푸터에 [편집 링크](./default-theme-edit-link)를 표시할지 여부를 설정합니다.
```yaml
---
@ -189,10 +189,10 @@ editLink: false
### footer
- 유형: `boolean`
- 타입: `boolean`
- 기본값: `true`
[footer](./default-theme-footer)를 표시할지 여부입니다.
[푸터](./default-theme-footer)를 표시할지 여부를 설정합니다.
```yaml
---
@ -202,9 +202,9 @@ footer: false
### pageClass
- 유형: `string`
- 타입: `string`
특정 페이지에 추가 클래스 이름을 추가합니다.
페이지에 추가할 클래스 입니다.
```yaml
---
@ -212,7 +212,7 @@ pageClass: custom-page-class
---
```
그런 다음 `.vitepress/theme/custom.css` 파일에서 이 특정 페이지의 스타일을 사용자 정의할 수 있습니다:
그런 다음 `.vitepress/theme/custom.css` 파일에서 이 페이지의 스타일을 커스텀 할 수 있습니다:
```css
.custom-page-class {

@ -1,35 +1,35 @@
# 런타임 API {#runtime-api}
VitePress는 앱 데이터에 액세스할 수 있도록 몇 가지 내장 API를 제공합니다. 또한 전역적으로 사용할 수 있는 몇 가지 내장 컴포넌트도 제공합니다.
VitePress는 애플리케이션 데이터를 액세스할 수 있는 여러 내장 API를 제공합니다. 그리고 전역적으로 사용할 수 있는 몇 가지 내장 컴포넌트도 제공합니다.
도우미 메서드는 `vitepress`에서 전역적으로 가져올 수 있으며 일반적으로 사용자 지정 테마 Vue 컴포넌트에서 사용됩니다. 그러나 마크다운 파일이 Vue [단일 파일 컴포넌트](https://vuejs.org/guide/scaling-up/sfc.html)로 컴파일되기 때문에 `.md` 페이지 내에서도 사용할 수 있습니다.
헬퍼 메서드는 `vitepress`에서 전역적으로 사용할 수 있으며, 주로 커스텀 테마의 Vue 컴포넌트에서 사용됩니다. 또한 마크다운 파일이 Vue [단일 파일 컴포넌트](https://vuejs.org/guide/scaling-up/sfc.html)로 컴파일되기 때문에 `.md` 페이지 내에서도 사용할 수 있습니다.
`use*`로 시작하는 메서드는 `setup()` 또는 `<script setup>` 내에서만 사용할 수 있는 [Vue 3 구성 API](https://vuejs.org/guide/introduction.html#composition-api) 함수("컴퍼저블")임을 나타냅니다.
`use*`로 시작하는 메서드는 [Vue 3 Composition API](https://vuejs.org/guide/introduction.html#composition-api) 함수("컴포저블")를 나타내며, 이는 `setup()` 또는 `<script setup>` 내부에서만 사용할 수 있습니다.
## `useData` <Badge type="info" text="컴저블" />
## `useData` <Badge type="info" text="컴저블" />
페이지별 데이터를 반환합니다. 반환된 객체는 다음 유형을 가집니다:
페이지별 데이터를 반환합니다. 반환된 객체는 다음과 같은 타입을 가집니다:
```ts
interface VitePressData<T = any> {
/**
* 사이트 수준 메타데이터
* 사이트 레벨 메타데이터
*/
site: Ref<SiteData<T>>
/**
* .vitepress/config.js에서의 themeConfig
* .vitepress/config.js 의 themeConfig
*/
theme: Ref<T>
/**
* 페이지 수준 메타데이터
* 페이지 레벨 메타데이터
*/
page: Ref<PageData>
/**
* 페이지 앞부분 메타데이터
* 페이지 전문 메타데이터
*/
frontmatter: Ref<PageData['frontmatter']>
/**
* 동적 라우트 매개변수
* 동적 라우트 파라미터
*/
params: Ref<PageData['params']>
title: Ref<string>
@ -58,7 +58,7 @@ interface PageData {
}
```
**예:**
**예:**
```vue
<script setup>
@ -72,9 +72,9 @@ const { theme } = useData()
</template>
```
## `useRoute` <Badge type="info" text="컴저블" />
## `useRoute` <Badge type="info" text="컴저블" />
현재 라우트 객체를 다음 유형으로 반환합니다:
다음과 같은 타입으로 현재 라우트 객체를 반환합니다:
```ts
interface Route {
@ -84,9 +84,9 @@ interface Route {
}
```
## `useRouter` <Badge type="info" text="컴저블" />
## `useRouter` <Badge type="info" text="컴저블" />
다른 페이지로 프로그래밍 방식으로 이동할 수 있도록 VitePress 라우터 인스턴스를 반환합니다.
프로그래밍 방식으로 다른 페이지로 이동할 수 있도록 VitePress 라우터 인스턴스를 반환합니다.
```ts
interface Router {
@ -95,38 +95,38 @@ interface Router {
*/
route: Route
/**
* 새 URL로 이동합니다.
* 새 URL로 이동.
*/
go: (to?: string) => Promise<void>
/**
* 라우트가 변경되기 전에 호출됩니다. 이동을 취소하려면 `false`를 반환하십시오.
* 라우트가 변경되기 전에 호출. 탐색을 취소하려면 `false`를 반환.
*/
onBeforeRouteChange?: (to: string) => Awaitable<void | boolean>
/**
* 페이지 컴포넌트가 로드되기 전(히스토리 상태가 업데이트된 후)에 호출됩니다.
* 이동을 취소하려면 `false`를 반환하십시오.
* 페이지 컴포넌트가 로드되기 전(히스토리 상태가 업데이트된 후)에 호출.
* 탐색을 취소하려면 `false`를 반환.
*/
onBeforePageLoad?: (to: string) => Awaitable<void | boolean>
/**
* 라우트가 변경된 후 호출됩니다.
* 라우트가 변경된 후 호출.
*/
onAfterRouteChanged?: (to: string) => Awaitable<void>
}
```
## `withBase` <Badge type="info" text="도움" />
## `withBase` <Badge type="info" text="헬퍼" />
- **타입**: `(path: string) => string`
설정된 [`base`](./site-config#base)를 주어진 URL 경로에 추가합니다. [Base URL](../guide/asset-handling#base-url)도 참조하십시오.
구성된 [`base`](./site-config#base)를 지정된 URL 경로에 추가합니다. [Base URL](../guide/asset-handling#base-url)을 참고하세요.
## `<Content />` <Badge type="info" text="컴포넌트" />
`<Content />` 컴포넌트는 렌더링된 마크다운 내용을 표시합니다. [자신만의 테마를 만들 때](../guide/custom-theme) 유용합니다.
`<Content />` 컴포넌트는 렌더링된 마크다운 내용을 표시합니다. [커스텀 테마를 만들 때](../guide/custom-theme) 유용합니다.
```vue
<template>
<h1>커스텀 레이아웃!</h1>
<h1>Custom Layout!</h1>
<Content />
</template>
```
@ -135,9 +135,9 @@ interface Router {
`<ClientOnly />` 컴포넌트는 클라이언트 측에서만 슬롯을 렌더링합니다.
VitePress 애플리케이션은 정적 빌드를 생성할 때 Node.js에서 서버 렌더링되므로, 모든 Vue 사용은 범용 코드 요구 사항에 부합해야 합니다. 간단히 말해서, beforeMount 또는 mounted 훅에서만 브라우저 / DOM API에 액세스하십시오.
VitePress 애플리케이션은 정적 빌드를 생성할 때 Node.js에서 서버 렌더링되므로 모든 Vue 사용은 범용 코드 요구 사항을 준수해야 합니다. 간단히 말해서, 브라우저 / DOM API는 반드시 beforeMount 또는 mounted 훅에서만 접근해야 합니다.
SSR 친화적이지 않은 컴포넌트(예: 커스텀 지시문이 포함된 경우)를 사용하거나 시연하는 경우 해당 컴포넌트를 `ClientOnly` 컴포넌트 안에 포함시킬 수 있습니다.
SSR 친화적이지 않은(예: 커스텀 디렉티브를 포함하는) 컴포넌트를 사용하는 경우, 이를 `ClientOnly` 컴포넌트 내부에 래핑할 수 있습니다.
```vue-html
<ClientOnly>
@ -145,15 +145,15 @@ SSR 친화적이지 않은 컴포넌트(예: 커스텀 지시문이 포함된
</ClientOnly>
```
- 관련: [SSR 호환성](../guide/ssr-compat)
- 참고: [SSR 호환성](../guide/ssr-compat)
## `$frontmatter` <Badge type="info" text="템플릿 전역" />
Vue 표현식에서 현재 페이지의 [앞부분 메타데이터](../guide/frontmatter)를 직접 액세스합니다.
Vue 표현식에서 현재 페이지의 [전문](../guide/frontmatter) 데이터에 직접 접근합니다.
```md
---
title: 안녕하세요
title: Hello
---
# {{ $frontmatter.title }}
@ -161,7 +161,7 @@ title: 안녕하세요
## `$params` <Badge type="info" text="템플릿 전역" />
Vue 표현식에서 현재 페이지의 [동적 라우트 매개변수](../guide/routing#dynamic-routes)를 직접 액세스합니다.
Vue 표현식에서 현재 페이지의 [동적 라우트 파라미터](../guide/routing#dynamic-routes)에 직접 접근합니다.
```md
- package name: {{ $params.pkg }}

@ -2,31 +2,31 @@
outline: deep
---
# 사이트 설정 {#site-config}
# 사이트 구성 {#site-config}
사이트 설정은 사이트의 전역 설정을 정의할 수 있는 곳입니다. 앱 설정 옵션은 사용되는 테마에 상관없이 모든 VitePress 사이트에 적용되는 설정을 정의합니다. 예를 들어, 기본 디렉토리 또는 사이트의 제목 등이 있습니다.
사이트 구성(config)은 사이트의 전역 설정을 정의할 수 있는 곳입니다. 애플리케이션 구성 옵션은 사용 중인 테마와 상관없이 모든 VitePress 사이트에 적용되는 설정을 정의합니다. 예를 들어 기본 디렉터리나 사이트의 제목 등이 있습니다.
## 개요 {#overview}
### 설정 해석 {#config-resolution}
### 구성 분석 {#config-resolution}
설정 파일은 항상 `<root>/.vitepress/config.[ext]`에서 해석되며, 여기서 `<root>`는 여러분의 VitePress [프로젝트 루트](../guide/routing#root-and-source-directory), 그리고 `[ext]`는 지원되는 파일 확장명 중 하나입니다. TypeScript는 기본적으로 지원됩니다. 지원되는 확장명에는 `.js`, `.ts`, `.mjs`, 그리고 `.mts`가 포함됩니다.
구성 파일은 항상 `<root>/.vitepress/config.[ext]`에서 처리됩니다. 여기서 `<root>`는 VitePress [프로젝트 루트](../guide/routing#root-and-source-directory)를 의미하며, `[ext]`는 지원되는 파일 확장자 중 하나입니다. TypeScript는 기본적으로 지원됩니다. 지원되는 확장자에는 `.js`, `.ts`, `.mjs`, `.mts`가 포함됩니다.
설정 파일에서는 ES 모듈 문법의 사용을 권장합니다. 설정 파일은 객체를 기본 내보내기해야 합니다:
구성 파일에서는 ES 모듈 구문을 사용하는 것이 권장됩니다. 구성 파일은 객체를 "default export"해야 합니다:
```ts
export default {
// 앱 레벨 설정 옵션
// 애플리케이션 레벨의 구성 옵션
lang: 'en-US',
title: 'VitePress',
description: 'Vite & Vue를 활용한 정적 사이트 생성기.',
description: 'Vite & Vue powered static site generator.',
...
}
```
::: details 동적(비동기) 설정
::: details 동적(비동기) 구성
동적으로 설정을 생성해야 하는 경우, 함수를 기본 내보내기로 사용할 수도 있습니다. 예를 들면:
구성을 동적으로 생성해야 하는 경우, 함수를 "default export" 할 수 있습니다. 예:
```ts
import { defineConfig } from 'vitepress'
@ -35,12 +35,12 @@ export default async () => {
const posts = await (await fetch('https://my-cms.com/blog-posts')).json()
return defineConfig({
// 앱 레벨 설정 옵션
// 애플리케이션 레벨의 구성 옵션
lang: 'en-US',
title: 'VitePress',
description: 'Vite & Vue를 활용한 정적 사이트 생성기.',
description: 'Vite & Vue powered static site generator.',
// 테마 레벨 설정 옵션
// 테마 레벨의 구성 옵션
themeConfig: {
sidebar: [
...posts.map((post) => ({
@ -53,7 +53,7 @@ export default async () => {
}
```
예를 들어 상위 수준의 `await`도 사용할 수 있습니다:
상위 수준의 `await`도 사용할 수 있습니다. 예:
```ts
import { defineConfig } from 'vitepress'
@ -80,9 +80,9 @@ export default defineConfig({
:::
### 설정 옵션에 대한 인텔리센스 {#config-intellisense}
### 구성 인텔리센스 {#config-intellisense}
`defineConfig` 헬퍼를 사용하면 설정 옵션에 대해 TypeScript로 제공되는 인텔리센스를 활용할 수 있습니다. 여러분의 IDE가 지원한다면, JavaScript와 TypeScript 모두에서 작동할 것입니다.
`defineConfig` 헬퍼를 사용하면 구성 옵션에 대해 TypeScript 기반의 인텔리센스(자동완성)를 제공받을 수 있습니다. IDE가 이를 지원하는 경우, JavaScript와 TypeScript 모두에서 작동합니다.
```js
import { defineConfig } from 'vitepress'
@ -92,21 +92,21 @@ export default defineConfig({
})
```
### 타입이 지정된 테마 설정 {#typed-theme-config}
### 타입이 지정된 테마 구성 {#typed-theme-config}
기본적으로, `defineConfig` 헬퍼는 기본 테마에서 테마 설정 유형을 예상합니다:
기본적으로 `defineConfig` 헬퍼는 기본 테마에서 테마 구성 타입을 예측합니다:
```ts
import { defineConfig } from 'vitepress'
export default defineConfig({
themeConfig: {
// 유형`DefaultTheme.Config`
// 타입`DefaultTheme.Config`
}
})
```
커스텀 테마를 사용하고 테마 설정에 대한 타입 검사를 원한다면, 대신 `defineConfigWithTheme`을 사용해야 하며, 일반 인수를 통해 귀하의 커스텀 테마에 대한 설정 유형을 전달해야 합니다:
커스텀 테마를 사용하고 테마 구성에 대한 타입 검사를 원한다면, `defineConfigWithTheme`를 사용하고 제네릭 인수를 통해 커스텀 테마의 구성 타입을 전달해야 합니다:
```ts
import { defineConfigWithTheme } from 'vitepress'
@ -114,102 +114,102 @@ import type { ThemeConfig } from 'your-theme'
export default defineConfigWithTheme<ThemeConfig>({
themeConfig: {
// 유형`ThemeConfig`
// 타입`ThemeConfig`
}
})
```
### Vite, Vue & Markdown 설정 {#vite-vue-markdown-config}
### Vite, Vue, Markdown 설정 {#vite-vue-markdown-config}
- **Vite**
여러분은 VitePress 설정에서 [vite](#vite) 옵션을 사용하여 기본 Vite 인스턴스를 구성할 수 있습니다. 별도의 Vite 설정 파일을 만들 필요는 없습니다.
VitePress 구성에서 [vite](#vite) 옵션을 사용하여 기본 Vite 인스턴스를 구성할 수 있습니다. 별도의 Vite 구성 파일을 만들 필요는 없습니다.
- **Vue**
VitePress는 이미 Vite 공식 Vue 플러그인([@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue))을 포함하고 있습니다. VitePress 설정에서 [vue](#vue) 옵션을 사용하여 그 옵션을 구성할 수 있습니다.
VitePress는 이미 Vite 공식 Vue 플러그인([@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue))을 포함하고 있습니다. VitePress 구성에서 [vue](#vue) 옵션을 사용하여 해당 옵션을 구성할 수 있습니다.
- **Markdown**
[Markdown-It](https://github.com/markdown-it/markdown-it) 인스턴스를 VitePress 설정에서 [markdown](#markdown) 옵션을 사용하여 구성할 수 있습니다.
[Markdown-It](https://github.com/markdown-it/markdown-it) 인스턴스를 VitePress 구성에서 [markdown](#markdown) 옵션을 사용하여 구성할 수 있습니다.
## 사이트 메타데이터 {#site-metadata}
### title
- 유형: `string`
- 타입: `string`
- 기본값: `VitePress`
- 페이지별로 [frontmatter](./frontmatter-config#title)를 통해 재정의 가능
- [전문](./frontmatter-config#title)을 통해 페이지별로 재정의 가능
사이트의 제목입니다. 기본 테마를 사용할 경우, 이것은 내비게이션 바에 표시됩니다.
사이트의 제목입니다. 기본 테마를 사용할 경우, 이 내비게이션 바에 표시됩니다.
전체 페이지 제목에 기본 접미사로도 사용됩니다. 그렇지 않으면 [`titleTemplate`](#titletemplate)이 정의되어 있습니다. 개별 페이지의 최종 제목은 첫 번째 `<h1>` 헤더의 텍스트 내용과 전역 `title`을 접미사로 결합한 것입니다. 예를 들어 다음과 같은 설정과 페이지 내용을 가진 경우:
[`titleTemplate`](#titletemplate)이 정의되지 않은 경우, 모든 개별 페이지 제목의 기본 접미사로 사용됩니다. 개별 페이지의 최종 제목은 첫 번째 `<h1>` 헤더의 텍스트 콘텐츠와 전역 `title`을 접미사로 결합한 것입니다. 예를 들어 다음 구성과 페이지 콘텐츠가 있을 경우:
```ts
export default {
title: '나의 멋진 사이트'
title: 'My Awesome Site'
}
```
```md
# 안녕하세요
# Hello
```
페이지의 제목은 `안녕하세요 | 나의 멋진 사이트`가 될 것입니다.
페이지의 제목은 `Hello | My Awesome Site`가 됩니다.
### titleTemplate
- 유형: `string | boolean`
- 페이지별로 [frontmatter](./frontmatter-config#titletemplate)를 통해 재정의 가능
- 타입: `string | boolean`
- [전문](./frontmatter-config#titletemplate)을 통해 페이지별로 재정의 가능
각 페이지의 제목 접미사 또는 전체 제목을 사용자 정의할 수 있습니다. 예를 들면:
각 페이지의 제목 접미사 또는 전체 제목을 커스터마이징할 수 있습니다. 예를 들어:
```ts
export default {
title: '나의 멋진 사이트',
titleTemplate: '커스텀 접미사'
title: 'My Awesome Site',
titleTemplate: 'Custom Suffix'
}
```
```md
# 안녕하세요
# Hello
```
페이지의 제목은 `안녕하세요 | 커스텀 접미사`가 될 것입니다.
페이지의 제목은 `Hello | Custom Suffix`가 됩니다.
`:title` 기호를 `titleTemplate`에 사용하여 제목이 어떻게 렌더링될지 완전히 사용자 정의할 수 있습니다:
제목이 렌더링되는 방식을 완전히 커스터마이징하려면 `titleTemplate`에서 `:title` 심볼을 사용할 수 있습니다:
```ts
export default {
titleTemplate: ':title - 커스텀 접미사'
titleTemplate: ':title - Custom Suffix'
}
```
이 경우 `:title`은 페이지의 첫 번째 `<h1>` 헤더에서 추론된 텍스트로 대체됩니다. 이전 예제 페이지의 제목은 `안녕하세요 - 커스텀 접미사`가 될 것입니다.
여기서 `:title`은 페이지의 첫 번째 `<h1>` 헤더에서 추론된 텍스트로 대체됩니다. 이전 예제 페이지의 제목은 `Hello - Custom Suffix`가 됩니다.
이 옵션 `false`로 설정하여 제목 접미사를 비활성화할 수 있습니다.
이 옵션 `false`로 설정하여 제목 접미사를 비활성화할 수 있습니다.
### description
- 유형: `string`
- 기본값: `VitePress 사이트`
- 페이지별로 [frontmatter](./frontmatter-config#description)를 통해 재정의 가능
- 타입: `string`
- 기본값: `A VitePress site`
- [전문](./frontmatter-config#description)을 통해 페이지별로 재정의 가능
사이트에 대한 설명입니다. 이것은 페이지 HTML의 `<meta>` 태그로 렌더링됩니다.
사이트의 설명입니다. 이는 페이지 HTML의 `<meta>` 태그로 렌더링됩니다.
```ts
export default {
description: 'VitePress 사이트'
description: 'A VitePress site'
}
```
### head
- 유형: `HeadConfig[]`
- 타입: `HeadConfig[]`
- 기본값: `[]`
- 페이지별로 [frontmatter](./frontmatter-config#head)를 통해 추가 가능
- [전문](./frontmatter-config#head)을 통해 페이지별로 추가 가능
페이지 HTML의 `<head>` 태그에 렌더링할 추가 요소들입니다. 사용자가 추가한 태그는 VitePress 태그 뒤, `head` 태그가 닫히기 전에 렌더링됩니다.
페이지 HTML의 `<head>` 태그에 렌더링할 추가 엘리먼트입니다. 추가한 태그는 VitePress 태그 뒤 ~ 닫는 `head` 태그 앞에 렌더링됩니다.
```ts
type HeadConfig =
@ -222,14 +222,14 @@ type HeadConfig =
```ts
export default {
head: [['link', { rel: 'icon', href: '/favicon.ico' }]]
} // base가 설정된 경우, /base/favicon.ico를 사용하세요
/* 다음을 렌더링할 것입니다:
} // favicon.ico를 public 디렉토리에 배치하거나 base가 설정된 경우,
// /base/favicon.ico를 사용하세요.
/* 다음과 같이 랜더링:
<link rel="icon" href="/favicon.ico">
*/
```
#### 예제: Google Fonts 추가 {#example-adding-google-fonts}
#### 예제: Google 폰트 추가 {#example-adding-google-fonts}
```ts
export default {
@ -249,7 +249,7 @@ export default {
]
}
/* 다음을 렌더링할 것입니다:
/* 다음과 같이 랜더링:
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
@ -273,7 +273,7 @@ export default {
]
}
/* 다음을 렌더링할 것입니다:
/* 다음과 같이 랜더링:
<script id="register-sw">
;(() => {
if ('serviceWorker' in navigator) {
@ -304,7 +304,7 @@ export default {
]
}
/* 다음을 렌더링할 것입니다:
/* 다음과 같이 랜더링:
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
@ -317,10 +317,10 @@ export default {
### lang
- 유형: `string`
- 타입: `string`
- 기본값: `en-US`
사이트의 lang 속성입니다. 이것은 페이지 HTML의 `<html lang="en-US">` 태그로 렌더링됩니다.
사이트의 언어 어트리뷰트입니다. 이는 페이지 HTML의 `<html lang="en-US">` 태그로 렌더링됩니다.
```ts
export default {
@ -330,12 +330,12 @@ export default {
### base
- 유형: `string`
- 타입: `string`
- 기본값: `/`
사이트가 배포될 기본 URL입니다. 여러분이 사이트를 GitHub 페이지와 같은 하위 경로에 배포할 계획이라면 이것을 설정해야 합니다. 예를 들어, 여러분의 사이트를 `https://foo.github.io/bar/`에 배포할 계획이라면 base를 `'/bar/'`로 설정해야 합니다. 항상 슬래시로 시작하고 끝나야 합니다.
사이트가 배포될 기본 URL입니다. 예를 들어 GitHub Pages와 같이 서브 경로에 사이트를 배포하려는 경우 이것을 설정해야 합니다. `https://foo.github.io/bar/` 에 사이트를 배포하려면 `'/bar/'`로 설정해야 합니다. 항상 슬래시로 시작하고 끝나야 합니다.
base는 자동으로 다른 옵션에서 /로 시작하는 모든 URL에 자동으로 추가되므로 한 번만 지정하면 됩니다.
이것은 다른 옵션에서 `/`로 시작하는 모든 URL에 자동으로 추가되므로, 한 번만 지정하면 됩니다.
```ts
export default {
@ -347,20 +347,20 @@ export default {
### cleanUrls
- 유형: `boolean`
- 타입: `boolean`
- 기본값: `false`
`true`로 설정하면, VitePress는 URL에서 끝부분 `.html`을 제거합니다. 또한 [클린 URL 생성](../guide/routing#generating-clean-url)을 참조하세요.
`true`로 설정하면 VitePress는 URL에서 `.html`을 제거합니다. [간결한 URL 생성](../guide/routing#generating-clean-url)을 참고하세요.
::: warning 서버 지원 필요
이를 활성화하려면 호스팅 플랫폼에서 추가 구성이 필요할 수 있습니다. 작동하려면 서버가 `/foo.html`을 방문할 때 `/foo`**리디렉션 없이** 제공할 수 있어야 합니다.
이를 활성화하려면 호스팅 플랫폼에서 추가 구성이 필요할 수 있습니다. 서버가 `/foo`를 방문할 때 **리디렉션 없이** `/foo.html` 제공할 수 있어야 합니다.
:::
### rewrites
- 유형: `Record<string, string>`
- 타입: `Record<string, string>`
사용자 지정 디렉토리 &lt;-&gt; URL 매핑을 정의합니다. 자세한 내용은 [라우팅: 라우트 재작성](../guide/routing#route-rewrites)을 참조하십시오.
커스텀 디렉터리와 URL 매핑을 정의합니다. 자세한 내용은 [라우팅: 라우트 재작성](../guide/routing#route-rewrites)을 참고하세요.
```ts
export default {
@ -374,10 +374,10 @@ export default {
### srcDir
- 유형: `string`
- 타입: `string`
- 기본값: `.`
프로젝트 루트에 대해 상대적인 마크다운 페이지가 저장되는 디렉토리입니다. 또한 [루트 및 소스 디렉토리](../guide/routing#root-and-source-directory)를 참조하십시오.
마크다운 페이지가 저장되는 디렉터리입니다. 프로젝트 루트에 상대적입니다. 또한 [루트와 소스 디렉터리](../guide/routing#root-and-source-directory)를 참고하세요.
```ts
export default {
@ -387,10 +387,10 @@ export default {
### srcExclude
- 유형: `string`
- 타입: `string`
- 기본값: `undefined`
소스 콘텐츠로 제외해야 하는 마크다운 파일을 일치시키는 [글로브 패턴](https://github.com/mrmlnc/fast-glob#pattern-syntax)입니다.
소스 컨텐츠에서 제외해야 하는 마크다운 파일을 매칭하기 위한 [glob 패턴](https://github.com/mrmlnc/fast-glob#pattern-syntax)입니다.
```ts
export default {
@ -400,10 +400,10 @@ export default {
### outDir
- 유형: `string`
- 타입: `string`
- 기본값: `./.vitepress/dist`
사이트의 빌드 출력 위치로, [프로젝트 루트](../guide/routing#root-and-source-directory)에 대해 상대적입니다.
사이트의 빌드 결과물 위치입니다. [프로젝트 루트](../guide/routing#root-and-source-directory)에 상대적입니다.
```ts
export default {
@ -413,10 +413,10 @@ export default {
### assetsDir
- 유형: `string`
- 타입: `string`
- 기본값: `assets`
생성된 자산을 중첩할 디렉토리를 지정합니다. 경로는 [`outDir`](#outdir) 내부에 있어야 하며 이에 대해 상대적으로 해결됩니다.
생성된 에셋을 포함할 디렉터리를 지정합니다. 경로는 [`outDir`](#outdir) 내에 있어야 하며, 그것을 기준으로 처리됩니다.
```ts
export default {
@ -426,10 +426,10 @@ export default {
### cacheDir
- 유형: `string`
- 타입: `string`
- 기본값: `./.vitepress/cache`
캐시 파일을 위한 디렉토리로, [프로젝트 루트](../guide/routing#root-and-source-directory)에 대해 상대적입니다. 또한: [cacheDir](https://vitejs.dev/config/shared-options.html#cachedir)을 참하세요.
캐시 파일을 위한 디렉터리입니다. [프로젝트 루트](../guide/routing#root-and-source-directory)에 상대적입니다. [cacheDir](https://vitejs.dev/config/shared-options.html#cachedir)을 참하세요.
```ts
export default {
@ -439,12 +439,12 @@ export default {
### ignoreDeadLinks
- 유형: `boolean | 'localhostLinks' | (string | RegExp | ((link: string) => boolean))[]`
- 타입: `boolean | 'localhostLinks' | (string | RegExp | ((link: string) => boolean))[]`
- 기본값: `false`
`true`로 설정하면, VitePress는 죽은 링크로 인해 빌드가 실패하지 않습니다.
`true`로 설정하면, 빌드 시 죽은 링크로 인해 실패하지 않습니다.
`'localhostLinks'`로 설정하면, 빌드가 죽은 링크로 실패하지만, `localhost` 링크는 확인하지 않습니다.
`'localhostLinks'`로 설정하면, 죽은 링크가 있으면 빌드에 실패하지만 `localhost` 링크는 확인하지 않습니다.
```ts
export default {
@ -452,18 +452,18 @@ export default {
}
```
정확한 url 문자열, 정규식 패턴, 또는 사용자 정의 필터 함수의 배열일 수도 있습니다.
정확히 일치하는 URL 문자열, 정규 표현식 패턴, 커스텀 필터 함수로 구성된 배열도 가능합니다.
```ts
export default {
ignoreDeadLinks: [
// 정확한 url "/playground"를 무시
// "/playground"과 정확히 일치하는 url 무시
'/playground',
// 모든 localhost 링크 무시
/^https?:\/\/localhost/,
// 모든 "/repl/" 포함 링크 무시
/\/repl\//,
// 사용자 정의 함수, "ignore"를 포함한 모든 링크 무시
// 커스텀 함수, "ignore"를 포함한 모든 링크 무시
(url) => {
return url.toLowerCase().includes('ignore')
}
@ -476,14 +476,14 @@ export default {
- 타입: `boolean`
- 기본값: `false`
`true`로 설정하면, 초기 HTML에 인라인으로 포함되는 대신 별도의 JavaScript 청크로 페이지 메타데이터를 추출합니다. 이렇게 하면 각 페이지의 HTML 페이로드가 줄어들고 페이지 메타데이터 캐싱이 가능해져 사이트에 많은 페이지가 있을 때 서버 대역폭이 줄어듭니다.
`true`로 설정하면 페이지 메타데이터를 초기 HTML에 인라인으로 삽입하는 대신 별도의 JavaScript 청크로 추출합니다. 이렇게 하면 각 페이지의 HTML 페이로드가 작아지고 페이지 메타데이터를 캐시할 수 있어, 사이트에 많은 페이지가 있을 때 서버 대역폭을 줄일 수 있습니다.
### mpa <Badge type="warning" text="실험적" />
- 타입: `boolean`
- 기본값: `false`
`true`로 설정하면, 프로덕션 앱이 [MPA 모드](../guide/mpa-mode)로 빌드됩니다. MPA 모드는 기본적으로 0kb의 JavaScript를 제공하지만, 클라이언트 측 탐색을 비활성화하고 상호작용에 대해 명시적인 동의가 필요합니다.
`true`로 설정하면 프로덕션 애플리케이션이 [MPA 모드](../guide/mpa-mode)로 빌드됩니다. MPA 모드는 기본적으로 0kb JavaScript를 제공하지만, 클라이언트 사이드 탐색을 비활성화하고 상호작용을 위한 명시적인 옵트인을 필요로 합니다.
## 테마 {#theming}
@ -492,34 +492,34 @@ export default {
- 타입: `boolean | 'dark' | 'force-dark' | 'force-auto' | import('@vueuse/core').UseDarkOptions`
- 기본값: `true`
다크 모드(HTML 요소에 `.dark` 클래스 추가) 활성화 여부입니다.
다크 모드를 활성화 여부를 설정합니다 (`.dark` 클래스를 `<html>` 엘리먼트에 추가).
- 옵션이 `true`로 설정되면, 기본 테마는 사용자의 선호 색상 체계에 따라 결정됩니다.
- 옵션이 `dark`로 설정되면, 테마는 기본적으로 다크 모드가 되며, 사용자가 수동으로 전환할 수 있습니다.
- 옵션이 `false`로 설정되면, 사용자는 테마를 전환할 수 없습니다.
- 옵션이 `'force-dark'`로 설정된 경우, 테마는 항상 어둡게 유지되며 사용자는 이를 변경할 수 없습니다.
- 옵션이 `'force-auto'`로 설정된 경우, 테마는 항상 사용자의 선호 색상에 의해 결정되며 사용자는 이를 변경할 수 없습니다.
- `true`: 기본 테마는 유저의 선호 색상 설정에 따라 결정됩니다.
- `dark`: 유저가 수동으로 변경하지 않는 한 기본 테마는 다크 모드가 됩니다.
- `false`: 유저는 테마를 전환할 수 없습니다.
- `'force-dark'`: 테마는 항상 다크 모드가 되며 유저는 이를 전환할 수 없습니다.
- `'force-auto'`: 테마는 항상 유저의 선호 색상 설정에 따라 결정되며 유저는 이를 전환할 수 없습니다.
이 옵션은 `vitepress-theme-appearance` 키를 사용하여 로컬 스토리지에서 사용자 설정을 복원하는 인라인 스크립트를 삽입합니다. 이는 페이지가 렌더링되기 전에 `.dark` 클래스가 적용되어 깜임을 방지합니다.
이 옵션은 `vitepress-theme-appearance` 키를 사용하여 로컬 스토리지에서 유저 설정을 복원하는 인라인 스크립트를 삽입합니다. 이는 페이지가 렌더링되기 전에 `.dark` 클래스가 적용되어 깜임을 방지합니다.
`appearance.initialValue``'dark' | undefined`만 가능합니다. Refs나 게터는 지원되지 않습니다.
`appearance.initialValue``'dark'` 또는 `undefined`만 가능합니다. Refs 또는 getter는 지원되지 않습니다.
### lastUpdated
- 타입: `boolean`
- 기본값: `false`
Git을 사용하여 각 페이지의 마지막 업데이트 타임스탬프를 가져옵니다. 타임스탬프는 각 페이지의 페이지 데이터에 포함되며, [`useData`](./runtime-api#usedata)를 통해 접근할 수 있습니다.
각 페이지의 마지막 업데이트 타임스탬프를 Git을 사용하여 가져올지 여부를 설정합니다. 타임스탬프는 각 페이지의 페이지 데이터에 포함되며, [`useData`](./runtime-api#usedata)를 통해 접근할 수 있습니다.
기본 테마를 사용하는 경우, 이 옵션을 활성화하면 각 페이지의 마지막 업데이트 시간이 표시됩니다. [`themeConfig.lastUpdatedText`](./default-theme-config#lastupdatedtext) 옵션을 통해 텍스트를 사용자 정의할 수 있습니다.
기본 테마를 사용할 때, 이 옵션을 활성화하면 각 페이지의 마지막 업데이트 시간이 표시됩니다. [`themeConfig.lastUpdatedText`](./default-theme-config#lastupdatedtext) 옵션을 통해 텍스트를 커스터마이징할 수 있습니다.
## 사용자 정의 {#customization}
## 커스터마이징 {#customization}
### markdown
- 타입: `MarkdownOption`
Markdown 파서 옵션을 구성합니다. VitePress는 파서로 [Markdown-it](https://github.com/markdown-it/markdown-it)를, 언어 구문을 강조하는 데 [Shiki](https://github.com/shikijs/shiki)를 사용합니다. 이 옵션 안에서 필요에 맞는 다양한 Markdown 관련 옵션을 전달할 수 있습니다.
마크다운 파서 옵션을 구성합니다. VitePress는 파서로 [Markdown-it](https://github.com/markdown-it/markdown-it)을 사용하고, 언어 구문 강조를 위해 [Shiki](https://github.com/shikijs/shiki)를 사용합니다. 이 옵션 내에서 다양한 마크다운 관련 옵션을 전달하여 필요에 맞게 조정할 수 있습니다.
```js
export default {
@ -527,18 +527,18 @@ export default {
}
```
모든 사용 가능한 옵션에 대해서는 [타입 선언과 jsdocs](https://github.com/vuejs/vitepress/blob/main/src/node/markdown/markdown.ts)를 확인하세요.
사용 가능한 모든 옵션에 대해서는 [타입 선언 및 jsdocs](https://github.com/vuejs/vitepress/blob/main/src/node/markdown/markdown.ts)를 참고하세요.
### vite
- 타입: `import('vite').UserConfig`
내부 Vite 개발 서버/번들러에 직접 [Vite 설정](https://vitejs.dev/config/)을 전달합니다.
내부 Vite 개발 서버/번들러에 직접 [Vite 구성](https://vitejs.dev/config/)을 전달합니다.
```js
export default {
vite: {
// Vite 설정 옵션
// Vite 구성 옵션
}
}
```
@ -547,7 +547,7 @@ export default {
- 타입: `import('@vitejs/plugin-vue').Options`
내부 플러그인 인스턴스에 [`@vitejs/plugin-vue` 옵션](https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#options)을 직접 전달합니다.
내부 플러그인 인스턴스에 직접 [`@vitejs/plugin-vue` 옵션](https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#options)을 전달합니다.
```js
export default {
@ -557,20 +557,20 @@ export default {
}
```
## 빌드 후크 {#build-hooks}
## 빌드 {#build-hooks}
VitePress 빌드 후크는 웹사이트에 새로운 기능과 동작을 추가할 수 있습니다:
VitePress 빌드 훅은 웹사이트에 새로운 기능과 동작을 추가할 수 있게 합니다:
- 사이트맵
- 검색 색인 작성
- 검색 인덱싱
- PWA
- Teleports
- 텔레포트
### buildEnd
- 타입: `(siteConfig: SiteConfig) => Awaitable<void>`
`buildEnd`는 빌드 CLI 후크로, 빌드(정적 사이트 생성, SSG) 완료 후 VitePress CLI 프로세스가 종료되기 전에 실행됩니다.
`buildEnd`는 빌드 CLI 훅으로, 빌드(SSG)가 완료된 후 VitePress CLI 프로세스가 종료되기 전에 실행됩니다.
```ts
export default {
@ -584,7 +584,7 @@ export default {
- 타입: `(context: SSGContext) => Awaitable<SSGContext | void>`
`postRender`SSG 렌더링이 완료되었을 때 호출되는 빌드 후크입니다. SSG 중 Teleports 콘텐츠를 다루는 것을 허용합니다.
`postRender`빌드 훅으로, SSG 렌더링이 완료되었을 때 호출됩니다. 이를 통해 SSG 동안 텔레포트 콘텐츠를 핸들링 할 수 있습니다.
```ts
export default {
@ -606,10 +606,10 @@ interface SSGContext {
- 타입: `(context: TransformContext) => Awaitable<HeadConfig[]>`
`transformHead`는 각 페이지를 생성하기 전에 head를 변환하는 빌드 후크입니다. 정적으로 VitePress 설정에 추가할 수 없는 head 항목을 추가할 수 있습니다. 기존 항목과 자동으로 병합되므로 추가 항목만 반환하면 됩니다.
`transformHead`는 각 페이지를 생성하기 전에 헤드를 변환하는 빌드 훅입니다. VitePress 구성에 정적으로 추가할 수 없는 헤드 항목을 추가할 수 있습니다. 기존 항목과 자동으로 병합되므로 추가 항목만 반환하면 됩니다.
::: warning
`context` 내부에서 어떤 것도 변형하지 마세요.
`context` 내부의 어떤 것도 변경하지 마세요.
:::
```ts
@ -622,8 +622,8 @@ export default {
```ts
interface TransformContext {
page: string // 예: index.md (srcDir에 대해 상대적)
assets: string[] // 모든 비-js/css 자산을 전적으로 해결된 공개 URL로
page: string // 예: index.md (srcDir에 상대적)
assets: string[] // js/css가 아닌 모든 에셋을 완전히 처리된 public URL로 표시.
siteConfig: SiteConfig
siteData: SiteData
pageData: PageData
@ -634,7 +634,7 @@ interface TransformContext {
}
```
후크는 웹사이트를 정적으로 생성할 때만 호출됩니다. 개발 중에는 호출되지 않습니다. 개발 중에 동적 head 항목을 추가해야 하는 경우, [`transformPageData`](#transformpagedata) 후크를 사용할 수 있습니다:
훅은 사이트를 정적으로 생성할 때만 호출됩니다. 개발 중에는 호출되지 않습니다. 개발 중에 동적 헤드 항목을 추가해야 하는 경우, [`transformPageData`](#transformpagedata) 훅을 대신 사용할 수 있습니다:
```ts
export default {
@ -654,7 +654,7 @@ export default {
}
```
#### 예시: 정규 URL `<link>` 추가 {#example-adding-a-canonical-url-link}
#### 예제: 표준 URL `<link>` 추가 {#example-adding-a-canonical-url-link}
```ts
export default {
@ -676,10 +676,10 @@ export default {
- 타입: `(code: string, id: string, context: TransformContext) => Awaitable<string | void>`
`transformHtml`는 디스크에 저장하기 전 각 페이지의 콘텐츠를 변환하는 빌드 훅입니다.
`transformHtml`은 각 페이지의 내용을 디스크에 저장하기 전에 변환하는 빌드 훅입니다.
::: warning
`context`에서는 어떠한 것도 변경하지 마세요. 또한, html 콘텐츠를 수정하는 것은 런타임에 수화 문제를 일으킬 수 있습니다.
`context`부의 어떤 것도 변경하지 마세요. HTML 내용을 수정하면 런타임에 하이드레이션 문제가 발생할 수 있습니다.
:::
```ts
@ -694,10 +694,10 @@ export default {
- 타입: `(pageData: PageData, context: TransformPageContext) => Awaitable<Partial<PageData> | { [key: string]: any } | void>`
`transformPageData`는 각 페이지의 `pageData`를 변환하는 훅입니다. `pageData`를 직접 변경하거나 변경된 값을 반환하여 페이지 데이터에 병합할 수 있습니다.
`transformPageData`는 각 페이지의 `pageData`를 변환하는 훅입니다. `pageData`를 직접 변경하거나, 변경된 값을 반환하여 페이지 데이터에 병합할 수 있습니다.
::: warning
`context`에서는 어떠한 것도 변경하지 마세요. 또한, 이 작업은 개발 서버의 성능에 영향을 줄 수 있으므로 주의하세요. 특히, 훅에서 네트워크 요청이나 이미지 생성과 같은 무거운 연산을 수행하는 경우에는 조건부 로직을 위해 `process.env.NODE_ENV === 'production'` 확인할 수 있습니다.
`context`부의 어떤 것도 변경하지 마세요. 이 훅에서 네트워크 요청이나 이미지 생성과 같은 무거운 연산이 있을 경우 개발 서버의 성능에 영향을 줄 수 있으니 주의하세요. 조건부 로직을 위해 `process.env.NODE_ENV === 'production'` 확인할 수 있습니다.
:::
```ts

Loading…
Cancel
Save