-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs(ko): add Korean docs to the official site (#4052)
- Loading branch information
1 parent
256d742
commit f7479ec
Showing
44 changed files
with
7,149 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,252 @@ | ||
import { createRequire } from 'module' | ||
import { defineConfig, type DefaultTheme } from 'vitepress' | ||
|
||
const require = createRequire(import.meta.url) | ||
const pkg = require('vitepress/package.json') | ||
|
||
export const ko = defineConfig({ | ||
lang: 'ko-KR', | ||
description: 'Vite 및 Vue 기반 정적 사이트 생성기.', | ||
|
||
themeConfig: { | ||
nav: nav(), | ||
|
||
sidebar: { | ||
'/ko/guide/': { base: '/ko/guide/', items: sidebarGuide() }, | ||
'/ko/reference/': { base: '/ko/reference/', items: sidebarReference() } | ||
}, | ||
|
||
editLink: { | ||
pattern: 'https://github.com/vuejs/vitepress/edit/main/docs/:path', | ||
text: 'GitHub에서 이 페이지를 편집하세요' | ||
}, | ||
|
||
footer: { | ||
message: 'Released under the MIT License.', | ||
copyright: 'Copyright © 2019-present Evan You' | ||
}, | ||
|
||
docFooter: { | ||
prev: '이전', | ||
next: '다음' | ||
}, | ||
|
||
outline: { | ||
label: '이 페이지에서' | ||
}, | ||
|
||
lastUpdated: { | ||
text: '업데이트 날짜' | ||
}, | ||
|
||
langMenuLabel: '언어 변경', | ||
returnToTopLabel: '맨 위로 돌아가기', | ||
sidebarMenuLabel: '사이드바 메뉴', | ||
darkModeSwitchLabel: '다크 모드', | ||
lightModeSwitchTitle: '라이트 모드로 변경', | ||
darkModeSwitchTitle: '다크 모드로 변경' | ||
} | ||
}) | ||
|
||
function nav(): DefaultTheme.NavItem[] { | ||
return [ | ||
{ | ||
text: '가이드', | ||
link: '/ko/guide/what-is-vitepress', | ||
activeMatch: '/ko/guide/' | ||
}, | ||
{ | ||
text: '레퍼런스', | ||
link: '/ko/reference/site-config', | ||
activeMatch: '/ko/reference/' | ||
}, | ||
{ | ||
text: pkg.version, | ||
items: [ | ||
{ | ||
text: '변경 로그', | ||
link: 'https://github.com/vuejs/vitepress/blob/main/CHANGELOG.md' | ||
}, | ||
{ | ||
text: '기여', | ||
link: 'https://github.com/vuejs/vitepress/blob/main/.github/contributing.md' | ||
} | ||
] | ||
} | ||
] | ||
} | ||
|
||
function sidebarGuide(): DefaultTheme.SidebarItem[] { | ||
return [ | ||
{ | ||
text: '소개', | ||
collapsed: false, | ||
items: [ | ||
{ | ||
text: 'VitePress란 무엇인가?', | ||
link: 'what-is-vitepress' | ||
}, | ||
{ | ||
text: '시작하기', | ||
link: 'getting-started' | ||
}, | ||
{ | ||
text: '라우팅', | ||
link: 'routing' | ||
}, | ||
{ | ||
text: '배포하기', | ||
link: 'deploy' | ||
} | ||
] | ||
}, | ||
{ | ||
text: '글쓰기', | ||
collapsed: false, | ||
items: [ | ||
{ | ||
text: '마크다운 확장', | ||
link: 'markdown' | ||
}, | ||
{ | ||
text: '에셋 핸들링', | ||
link: 'asset-handling' | ||
}, | ||
{ | ||
text: '프론트마터', | ||
link: 'frontmatter' | ||
}, | ||
{ | ||
text: '마크다운에서 Vue 사용', | ||
link: 'using-vue' | ||
}, | ||
{ | ||
text: '국제화', | ||
link: 'i18n' | ||
} | ||
] | ||
}, | ||
{ | ||
text: '사용자 정의', | ||
collapsed: false, | ||
items: [ | ||
{ | ||
text: '맞춤 테마 사용', | ||
link: 'custom-theme' | ||
}, | ||
{ | ||
text: '기본 테마 확장', | ||
link: 'extending-default-theme' | ||
}, | ||
{ | ||
text: '빌드할 때 데이터 로딩', | ||
link: 'data-loading' | ||
}, | ||
{ | ||
text: 'SSR 호환성', | ||
link: 'ssr-compat' | ||
}, | ||
{ | ||
text: 'CMS 연결', | ||
link: 'cms' | ||
} | ||
] | ||
}, | ||
{ | ||
text: '실험적인', | ||
collapsed: false, | ||
items: [ | ||
{ | ||
text: 'MPA 모드', | ||
link: 'mpa-mode' | ||
}, | ||
{ | ||
text: '사이트맵 생성', | ||
link: 'sitemap-generation' | ||
} | ||
] | ||
}, | ||
{ | ||
text: '설정 & API 참조', | ||
base: '/ko/reference/', | ||
link: 'site-config' | ||
} | ||
] | ||
} | ||
|
||
function sidebarReference(): DefaultTheme.SidebarItem[] { | ||
return [ | ||
{ | ||
text: '레퍼런스', | ||
items: [ | ||
{ text: '사이트 구성', link: 'site-config' }, | ||
{ text: '머리말 구성', link: 'frontmatter-config' }, | ||
{ text: '런타임 API', link: 'runtime-api' }, | ||
{ text: 'CLI', link: 'cli' }, | ||
{ | ||
text: '기본 테마', | ||
base: '/ko/reference/default-theme-', | ||
items: [ | ||
{ text: '개요', link: 'config' }, | ||
{ text: '네비게이션', link: 'nav' }, | ||
{ text: '사이드바', link: 'sidebar' }, | ||
{ text: '홈 페이지', link: 'home-page' }, | ||
{ text: '푸터', link: 'footer' }, | ||
{ text: '레이아웃', link: 'layout' }, | ||
{ text: '배지', link: 'badge' }, | ||
{ text: '팀 페이지', link: 'team-page' }, | ||
{ text: '이전 / 다음 링크', link: 'prev-next-links' }, | ||
{ text: '편집 링크', link: 'edit-link' }, | ||
{ text: '마지막 업데이트 시간', link: 'last-updated' }, | ||
{ text: '검색', link: 'search' }, | ||
{ text: '카본 광고', link: 'carbon-ads' } | ||
] | ||
} | ||
] | ||
} | ||
] | ||
} | ||
|
||
export const search: DefaultTheme.AlgoliaSearchOptions['locales'] = { | ||
ko: { | ||
placeholder: '문서 검색', | ||
translations: { | ||
button: { | ||
buttonText: '검색', | ||
buttonAriaLabel: '검색' | ||
}, | ||
modal: { | ||
searchBox: { | ||
resetButtonTitle: '검색 지우기', | ||
resetButtonAriaLabel: '검색 지우기', | ||
cancelButtonText: '취소', | ||
cancelButtonAriaLabel: '취소' | ||
}, | ||
startScreen: { | ||
recentSearchesTitle: '검색 기록', | ||
noRecentSearchesText: '최근 검색 없음', | ||
saveRecentSearchButtonTitle: '검색 기록에 저장', | ||
removeRecentSearchButtonTitle: '검색 기록에서 삭제', | ||
favoriteSearchesTitle: '즐겨찾기', | ||
removeFavoriteSearchButtonTitle: '즐겨찾기에서 삭제' | ||
}, | ||
errorScreen: { | ||
titleText: '결과를 가져올 수 없습니다', | ||
helpText: '네트워크 연결을 확인하세요' | ||
}, | ||
footer: { | ||
selectText: '선택', | ||
navigateText: '탐색', | ||
closeText: '닫기', | ||
searchByText: '검색 기준' | ||
}, | ||
noResultsScreen: { | ||
noResultsText: '결과를 찾을 수 없습니다', | ||
suggestedQueryText: '새로운 검색을 시도할 수 있습니다', | ||
reportMissingResultsText: '해당 검색어에 대한 결과가 있어야 합니까?', | ||
reportMissingResultsLinkText: '피드백 보내기 클릭' | ||
} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
# 자산 처리 {#asset-handling} | ||
|
||
## 정적 자산 참조하기 {#referencing-static-assets} | ||
|
||
모든 Markdown 파일은 Vue 컴포넌트로 컴파일되며 [Vite](https://vitejs.dev/ko/guide/assets.html)에 의해 처리됩니다. 상대 URL을 사용하여 어떠한 자산도 참조할 수 **있으며 해야 합니다**: | ||
|
||
```md | ||
![이미지](./image.png) | ||
``` | ||
|
||
Markdown 파일, 테마의 `*.vue` 컴포넌트, 스타일 및 일반 `.css` 파일에서 정적 자산을 참조할 수 있으며, 절대 공개 경로(프로젝트 루트를 기준으로 함) 또는 상대 경로(파일 시스템을 기준으로 함)를 사용할 수 있습니다. 후자는 Vite, Vue CLI 또는 webpack의 `file-loader`를 사용해 본 적이 있다면 익숙한 동작 방식과 유사합니다. | ||
|
||
일반적인 이미지, 미디어, 폰트 파일 유형은 자동으로 자산으로 감지되어 포함됩니다. | ||
|
||
::: tip 링크된 파일은 자산으로 취급되지 않음 | ||
Markdown 파일 내의 링크로 참조된 PDF 또는 기타 문서는 자동으로 자산으로 취급되지 않습니다. 링크된 파일을 접근 가능하게 만들기 위해서는 수동으로 해당 파일을 프로젝트의 [`public`](#the-public-directory) 디렉토리에 배치해야 합니다. | ||
::: | ||
|
||
절대 경로를 포함한 모든 참조된 자산은 생산 빌드에서 해시된 파일 이름으로 출력 디렉토리에 복사됩니다. 참조되지 않은 자산은 복사되지 않습니다. 4kb보다 작은 이미지 자산은 base64 인라인으로 처리됩니다 - 이는 [`vite`](../reference/site-config#vite) 구성 옵션을 통해 설정할 수 있습니다. | ||
|
||
모든 **정적** 경로 참조, 절대 경로를 포함하여, 작업 디렉토리 구조를 기반으로 해야 합니다. | ||
|
||
## Public 디렉토리 {#the-public-directory} | ||
|
||
Markdown이나 테마 컴포넌트에서 직접 참조되지 않은 정적 자산을 제공할 필요가 있거나, 특정 파일을 원본 파일명으로 제공하고 싶은 경우가 있을 수 있습니다. 이러한 파일의 예로는 `robots.txt`, 파비콘, PWA 아이콘이 있습니다. | ||
|
||
이 파일들은 [소스 디렉토리](./routing#source-directory) 아래의 `public` 디렉토리에 배치할 수 있습니다. 예를 들어, 프로젝트 루트가 `./docs`이고 기본 소스 디렉토리 위치를 사용한다면, public 디렉토리는 `./docs/public`이 됩니다. | ||
|
||
`public`에 배치된 자산은 그대로 출력 디렉토리의 루트로 복사됩니다. | ||
|
||
`public`에 배치된 파일을 참조할 때는 루트 절대 경로를 사용해야 한다는 점에 유의하세요 - 예를 들어, `public/icon.png`는 소스 코드에서 항상 `/icon.png`로 참조되어야 합니다. | ||
|
||
## 기본 URL {#base-url} | ||
|
||
사이트가 루트 URL이 아닌 곳에 배포되는 경우, `.vitepress/config.js`에서 `base` 옵션을 설정해야 합니다. 예를 들어, 사이트를 `https://foo.github.io/bar/`에 배포할 계획이라면, `base`는 `'/bar/'`(항상 슬래시로 시작하고 끝나야 함)로 설정해야 합니다. | ||
|
||
모든 정적 자산 경로는 다양한 `base` 구성 값에 맞게 자동으로 처리됩니다. 예를 들어, 마크다운에서 `public` 아래에 있는 자산에 대한 절대 참조가 있는 경우: | ||
|
||
```md | ||
![이미지](/image-inside-public.png) | ||
``` | ||
|
||
이 경우 `base` 구성 값을 변경하더라도 업데이트할 필요가 **없습니다**. | ||
|
||
그러나 자산을 동적으로 연결하는 테마 컴포넌트를 작성하는 경우, 예를 들어 테마 구성 값에 기반한 이미지의 `src`가 있는 경우: | ||
|
||
```vue | ||
<img :src="theme.logoPath" /> | ||
``` | ||
|
||
이 경우 VitePress에 제공되는 [`withBase` 헬퍼](../reference/runtime-api#withbase)로 경로를 래핑하는 것이 권장됩니다: | ||
|
||
```vue | ||
<script setup> | ||
import { withBase, useData } from 'vitepress' | ||
const { theme } = useData() | ||
</script> | ||
<template> | ||
<img :src="withBase(theme.logoPath)" /> | ||
</template> | ||
``` |
Oops, something went wrong.