Skip to content

Component Playground

VitePress에서 사용 가능한 모든 커스텀 컴포넌트들의 데모 및 사용법을 정리한 페이지입니다.

📋 목차


🏷️ Tag Components

현재 페이지의 태그를 표시하는 컴포넌트입니다. frontmatter에 tags 배열이 있으면 자동으로 렌더링됩니다.

사용법:

markdown
<TagLinks />

실제 동작:


TagList

모든 태그와 해당 태그가 있는 페이지 목록을 표시합니다.

사용법:

markdown
<TagList />
TagList 예시 보기
🏷️68개의 태그
📝120개의 글

.net core5

PathPolisher1

The Farmer was replaced1

actions1

authentication1

centos81

certificate1

cli1

cmder1

command-line1

cqrs / es4

debugging1

dev4

docker8

docker-compose4

dotnet1

edge1

ef core1

env5

fork1

game1

geolocation1

ghcr.io1

git1

github1

gps1

husky1

image1

ipad1

java1

jenv1

k8s1

konva1

kubernetes1

linux1

mac2

mariaDB1

markdown1

mssql5

nas1

net1

nfc1

nfd1

nginx5

npm1

nvm1

path-polisher1

pnpm1

podman1

postgresql1

precommit1

python1

reverse proxy1

seq5

serilog4

ssl5

swagger5

synology1

todo1

todoapp4

unicode1

uv1

vscode2

windows1

workflow1

wsl1

x5091

한글자모분리리1


🎨 Demo Components

DemoComponent

간단한 데모 컴포넌트입니다.

사용법:

markdown
<DemoComponent />
<!-- 또는 -->
<demo-component />

실제 동작:

Hello this is <demo-component>


OtherComponent

또 다른 데모 컴포넌트입니다.

사용법:

markdown
<OtherComponent />

실제 동작:

This is another component


FooBar

폴더 구조를 가진 컴포넌트 예시입니다.

사용법:

markdown
<FooBar />
<!-- 또는 -->
<Foo-Bar />

실제 동작:

Hello this is <Foo-Bar>


🎭 Canvas Graphics (Konva)

Konva.js를 사용한 HTML5 Canvas 그래픽 컴포넌트들입니다.

KonvaTest

간단한 원(Circle)을 그리는 기본 예제입니다.

기능:

  • 200x200 픽셀 캔버스
  • 마젠타 색상 원 (반지름 70px)
  • 빨간색 테두리 (두께 4px)

사용법:

markdown
<KonvaTest />

실제 동작:


KonvaTest2

300개의 별을 렌더링하는 고급 예제입니다. 캐싱 기능을 테스트할 수 있습니다.

기능:

  • 600x900 픽셀 캔버스
  • 300개의 랜덤 별 생성
  • 드래그 가능한 캔버스
  • 캐싱 옵션 (성능 최적화)

사용법:

markdown
<KonvaTest2 />

실제 동작:

성능 주의

이 컴포넌트는 300개의 도형을 렌더링합니다. "cache shapes" 체크박스를 활성화하면 성능이 향상됩니다.


🖼️ Image Viewer

이미지 뷰어 플러그인이 자동으로 모든 이미지에 적용됩니다.

기능:

  • 이미지 클릭 시 확대
  • 줌, 회전, 전체화면
  • 갤러리 모드

예시:

VitePress Logo

TIP

이미지를 클릭해보세요! 확대 보기가 가능합니다.


💬 Disqus Comments

Disqus 댓글은 각 페이지 하단에 자동으로 표시됩니다.

비활성화 방법:

yaml
---
disqus: false
---

기본 동작:

  • localhost에서는 표시되지 않음
  • 프로덕션 환경에서만 활성화

🔧 컴포넌트 등록 방법

모든 컴포넌트는 .vitepress/theme/index.ts에서 전역으로 등록되어 있습니다:

typescript
enhanceApp(ctx) {
  ctx.app.component('TagList', TagList);
  ctx.app.component('TagLinks', TagLinks);
  ctx.app.component('DemoComponent', DemoComponent);
  ctx.app.component('demo-component', DemoComponent);
  ctx.app.component('OtherComponent', OtherComponent);
  ctx.app.component('FooBar', FooBar);
  ctx.app.component('Foo-Bar', FooBar);
  ctx.app.component('KonvaTest', KonvaTest);
  ctx.app.component('KonvaTest2', KonvaTest2);
}

📚 추가 리소스

VitePress 문서

Konva.js 문서


🚀 컴포넌트 추가하기

새로운 컴포넌트를 추가하려면:

  1. .vitepress/theme/components/ 폴더에 컴포넌트 생성
  2. .vitepress/theme/index.ts에서 import 및 등록
  3. 이 페이지에 사용 예시 추가

예시:

vue
<!-- .vitepress/theme/components/MyComponent.vue -->
<template>
  <div class="my-component">Hello from MyComponent!</div>
</template>

<script setup lang="ts">
// Component logic
</script>

<style scoped>
.my-component {
  color: var(--vp-c-brand-1);
}
</style>
typescript
// .vitepress/theme/index.ts
import MyComponent from './components/MyComponent.vue';

enhanceApp(ctx) {
  ctx.app.component('MyComponent', MyComponent);
}

🎉 모든 컴포넌트가 정상적으로 작동하는지 확인하세요!

문제가 있다면 브라우저 콘솔을 확인하거나 개발자 도구를 열어보세요.

Released under the MIT License.