You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vitepress/docs/ko/reference/default-theme-home-page.md

196 lines
5.4 KiB

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