Skip to content

마크다운 플러그인

Wireweave 마크다운 플러그인을 사용하면 마크다운 문서에 와이어프레임을 삽입할 수 있습니다.

설치

bash
npm install @wireweave/markdown-plugin

사용 방법

VitePress

typescript
// .vitepress/config.ts
import { wireweavePlugin } from '@wireweave/markdown-plugin';

export default {
  markdown: {
    config: (md) => {
      md.use(wireweavePlugin);
    }
  }
};

Remark/Rehype

typescript
import { remarkWireweave } from '@wireweave/markdown-plugin';
import remarkParse from 'remark-parse';
import { unified } from 'unified';

const processor = unified()
  .use(remarkParse)
  .use(remarkWireweave);

Docusaurus

javascript
// docusaurus.config.js
const wireweavePlugin = require('@wireweave/markdown-plugin/docusaurus');

module.exports = {
  plugins: [wireweavePlugin]
};

마크다운에서 사용

마크다운 파일에서 wireframe 코드 블록을 사용합니다:

markdown
# 로그인 페이지 디자인

아래는 로그인 페이지 와이어프레임입니다:

```wireframe
page "Login" centered {
  card w=400 {
    title "Sign In" level=2
    input "Email" type=email
    input "Password" type=password
    button "Sign In" primary
  }
}
```

이 디자인은 간단하고 사용하기 쉽습니다.

출력 형식

HTML 출력 (기본값)

markdown
```wireframe
page { button "Click" primary }

HTML로 렌더링됩니다:

```html
<div class="wireframe-container">
  <div class="page">
    <button class="button primary">Click</button>
  </div>
</div>

SVG 출력

markdown
```wireframe format=svg
page { button "Click" primary }

SVG 이미지로 렌더링됩니다.

## 옵션

### 테마

```markdown
```wireframe theme=dark
page { card { text "Dark theme" } }

### 너비

```markdown
```wireframe width=600
page { card { text "Fixed width" } }

### 제목

```markdown
```wireframe title="Login Wireframe"
page { card { text "With title" } }

## 플러그인 옵션

플러그인 초기화 시 옵션을 지정할 수 있습니다:

```typescript
md.use(wireweavePlugin, {
  defaultTheme: 'light',
  defaultFormat: 'html',
  defaultWidth: 800,
  containerClass: 'wireframe-container'
});

사용 가능한 옵션

옵션기본값설명
defaultTheme"light"기본 테마
defaultFormat"html"기본 출력 형식
defaultWidth800기본 너비
containerClass"wireframe"컨테이너 CSS 클래스

스타일링

기본 스타일을 커스터마이즈할 수 있습니다:

css
.wireframe-container {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  overflow: hidden;
  margin: 1rem 0;
}

.wireframe-title {
  background: #f9fafb;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  color: #6b7280;
  border-bottom: 1px solid #e5e7eb;
}

문제 해결

렌더링되지 않음

  1. 플러그인이 올바르게 등록되었는지 확인
  2. 코드 블록 언어가 wireframe인지 확인
  3. DSL 문법 오류 확인

스타일이 적용되지 않음

  1. CSS 파일이 포함되었는지 확인
  2. 클래스 이름이 올바른지 확인

다음 단계

Released under the MIT License.