flowbook 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.de.md +170 -0
- package/README.es.md +170 -0
- package/README.fr.md +170 -0
- package/README.ja.md +170 -0
- package/README.ko.md +170 -0
- package/README.md +170 -0
- package/README.pt-BR.md +170 -0
- package/README.ru.md +171 -0
- package/README.zh-CN.md +170 -0
- package/dist/cli.js +244 -0
- package/package.json +35 -0
- package/src/client/App.tsx +52 -0
- package/src/client/components/EmptyState.tsx +57 -0
- package/src/client/components/FlowView.tsx +62 -0
- package/src/client/components/Header.tsx +48 -0
- package/src/client/components/MermaidRenderer.tsx +104 -0
- package/src/client/components/Sidebar.tsx +88 -0
- package/src/client/index.html +13 -0
- package/src/client/main.tsx +10 -0
- package/src/client/styles/globals.css +39 -0
- package/src/client/vite-env.d.ts +21 -0
- package/src/node/cli.ts +59 -0
- package/src/node/discovery.ts +16 -0
- package/src/node/init.ts +71 -0
- package/src/node/parser.ts +41 -0
- package/src/node/plugin.ts +53 -0
- package/src/node/server.ts +56 -0
- package/src/types.ts +20 -0
package/README.ko.md
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# Flowbook
|
|
2
|
+
|
|
3
|
+
> **[English](./README.md)** | **한국어** | [简体中文](./README.zh-CN.md) | [日本語](./README.ja.md) | [Español](./README.es.md) | [Português (BR)](./README.pt-BR.md) | [Français](./README.fr.md) | [Русский](./README.ru.md) | [Deutsch](./README.de.md)
|
|
4
|
+
|
|
5
|
+
플로우차트를 위한 Storybook. 코드베이스에서 Mermaid 다이어그램 파일을 자동으로 발견하고, 카테고리별로 정리하여 브라우저에서 볼 수 있게 렌더링합니다.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+

|
|
9
|
+

|
|
10
|
+

|
|
11
|
+
|
|
12
|
+
## 빠른 시작
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# 설치
|
|
16
|
+
npm install -D flowbook
|
|
17
|
+
|
|
18
|
+
# 초기화 — 스크립트 + 예제 파일 추가
|
|
19
|
+
npx flowbook init
|
|
20
|
+
|
|
21
|
+
# 개발 서버 실행
|
|
22
|
+
npm run flowbook
|
|
23
|
+
# → http://localhost:6200
|
|
24
|
+
|
|
25
|
+
# 정적 사이트 빌드
|
|
26
|
+
npm run build-flowbook
|
|
27
|
+
# → flowbook-static/
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## CLI
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
flowbook init 프로젝트에 Flowbook 설정
|
|
34
|
+
flowbook dev [--port 6200] 개발 서버 실행
|
|
35
|
+
flowbook build [--out-dir d] 정적 사이트 빌드
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### `flowbook init`
|
|
39
|
+
|
|
40
|
+
- `package.json`에 `"flowbook"`, `"build-flowbook"` 스크립트를 추가합니다
|
|
41
|
+
- `flows/example.flow.md` 예제 템플릿을 생성합니다
|
|
42
|
+
|
|
43
|
+
### `flowbook dev`
|
|
44
|
+
|
|
45
|
+
`http://localhost:6200`에서 HMR이 지원되는 Vite 개발 서버를 실행합니다. `.flow.md` 또는 `.flowchart.md` 파일 변경 사항이 즉시 반영됩니다.
|
|
46
|
+
|
|
47
|
+
### `flowbook build`
|
|
48
|
+
|
|
49
|
+
`flowbook-static/` 디렉토리에 정적 사이트를 빌드합니다 (`--out-dir`로 변경 가능). 어디서든 배포 가능합니다.
|
|
50
|
+
|
|
51
|
+
## 플로우 파일 작성
|
|
52
|
+
|
|
53
|
+
프로젝트 어디에서나 `.flow.md` (또는 `.flowchart.md`) 파일을 생성하세요:
|
|
54
|
+
|
|
55
|
+
````markdown
|
|
56
|
+
---
|
|
57
|
+
title: 로그인 흐름
|
|
58
|
+
category: 인증
|
|
59
|
+
tags: [auth, login, oauth]
|
|
60
|
+
order: 1
|
|
61
|
+
description: OAuth2를 사용한 사용자 인증 흐름
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
```mermaid
|
|
65
|
+
flowchart TD
|
|
66
|
+
A[사용자] --> B{인증됨?}
|
|
67
|
+
B -->|예| C[대시보드]
|
|
68
|
+
B -->|아니오| D[로그인 페이지]
|
|
69
|
+
```
|
|
70
|
+
````
|
|
71
|
+
|
|
72
|
+
Flowbook이 자동으로 파일을 발견하여 뷰어에 추가합니다.
|
|
73
|
+
|
|
74
|
+
## 프론트매터 스키마
|
|
75
|
+
|
|
76
|
+
| 필드 | 타입 | 필수 | 설명 |
|
|
77
|
+
|---------------|------------|------|-------------------------------------|
|
|
78
|
+
| `title` | `string` | 아니오 | 표시 제목 (기본값: 파일명) |
|
|
79
|
+
| `category` | `string` | 아니오 | 사이드바 카테고리 (기본값: "Uncategorized") |
|
|
80
|
+
| `tags` | `string[]` | 아니오 | 필터링 가능한 태그 |
|
|
81
|
+
| `order` | `number` | 아니오 | 카테고리 내 정렬 순서 (기본값: 999) |
|
|
82
|
+
| `description` | `string` | 아니오 | 상세 보기에 표시되는 설명 |
|
|
83
|
+
|
|
84
|
+
## 파일 탐색
|
|
85
|
+
|
|
86
|
+
Flowbook은 기본적으로 다음 패턴을 스캔합니다:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
**/*.flow.md
|
|
90
|
+
**/*.flowchart.md
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`node_modules/`, `.git/`, `dist/`는 무시합니다.
|
|
94
|
+
|
|
95
|
+
## 동작 원리
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
.flow.md 파일 ──→ Vite 플러그인 ──→ 가상 모듈 ──→ React 뷰어
|
|
99
|
+
│ │
|
|
100
|
+
├─ fast-glob 스캔 ├─ export default { flows: [...] }
|
|
101
|
+
├─ gray-matter │
|
|
102
|
+
│ 파싱 └─ 파일 변경 시 HMR
|
|
103
|
+
└─ mermaid 블록
|
|
104
|
+
추출
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
1. **탐색** — `fast-glob`이 프로젝트에서 `*.flow.md` / `*.flowchart.md`를 스캔
|
|
108
|
+
2. **파싱** — `gray-matter`가 YAML 프론트매터를 추출; 정규식으로 `` ```mermaid `` 블록 추출
|
|
109
|
+
3. **가상 모듈** — Vite 플러그인이 파싱된 데이터를 `virtual:flowbook-data`로 제공
|
|
110
|
+
4. **렌더링** — React 앱이 `mermaid.render()`를 통해 Mermaid 다이어그램 렌더링
|
|
111
|
+
5. **HMR** — 파일 변경 시 가상 모듈을 무효화하여 리로드 트리거
|
|
112
|
+
|
|
113
|
+
## 프로젝트 구조
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
src/
|
|
117
|
+
├── types.ts # 공유 타입 (FlowEntry, FlowbookData)
|
|
118
|
+
├── node/
|
|
119
|
+
│ ├── cli.ts # CLI 진입점 (init, dev, build)
|
|
120
|
+
│ ├── server.ts # 프로그래밍 방식 Vite 서버 & 빌드
|
|
121
|
+
│ ├── init.ts # 프로젝트 초기화 로직
|
|
122
|
+
│ ├── discovery.ts # 파일 스캐너 (fast-glob)
|
|
123
|
+
│ ├── parser.ts # 프론트매터 + mermaid 추출
|
|
124
|
+
│ └── plugin.ts # Vite 가상 모듈 플러그인
|
|
125
|
+
└── client/
|
|
126
|
+
├── index.html # 진입 HTML
|
|
127
|
+
├── main.tsx # React 진입점
|
|
128
|
+
├── App.tsx # 검색 + 사이드바 + 뷰어 레이아웃
|
|
129
|
+
├── vite-env.d.ts # 가상 모듈 타입 선언
|
|
130
|
+
├── styles/globals.css # Tailwind v4 + 커스텀 스타일
|
|
131
|
+
└── components/
|
|
132
|
+
├── Header.tsx # 로고, 검색바, 플로우 개수
|
|
133
|
+
├── Sidebar.tsx # 접을 수 있는 카테고리 트리
|
|
134
|
+
├── MermaidRenderer.tsx # Mermaid 다이어그램 렌더링
|
|
135
|
+
├── FlowView.tsx # 단일 플로우 상세 보기
|
|
136
|
+
└── EmptyState.tsx # 빈 상태 안내
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## 개발 (기여)
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
git clone https://github.com/Epsilondelta-ai/flowbook.git
|
|
143
|
+
cd flowbook
|
|
144
|
+
npm install
|
|
145
|
+
|
|
146
|
+
# 로컬 개발 (루트 vite.config.ts 사용)
|
|
147
|
+
npm run dev
|
|
148
|
+
|
|
149
|
+
# CLI 빌드
|
|
150
|
+
npm run build
|
|
151
|
+
|
|
152
|
+
# 로컬에서 CLI 테스트
|
|
153
|
+
node dist/cli.js dev
|
|
154
|
+
node dist/cli.js build
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## 기술 스택
|
|
158
|
+
|
|
159
|
+
- **Vite** — HMR 지원 개발 서버
|
|
160
|
+
- **React 19** — UI
|
|
161
|
+
- **Mermaid 11** — 다이어그램 렌더링
|
|
162
|
+
- **Tailwind CSS v4** — 스타일링
|
|
163
|
+
- **gray-matter** — YAML 프론트매터 파싱
|
|
164
|
+
- **fast-glob** — 파일 탐색
|
|
165
|
+
- **tsup** — CLI 번들러
|
|
166
|
+
- **TypeScript** — 타입 안전성
|
|
167
|
+
|
|
168
|
+
## 라이선스
|
|
169
|
+
|
|
170
|
+
MIT
|
package/README.md
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# Flowbook
|
|
2
|
+
|
|
3
|
+
> **English** | [한국어](./README.ko.md) | [简体中文](./README.zh-CN.md) | [日本語](./README.ja.md) | [Español](./README.es.md) | [Português (BR)](./README.pt-BR.md) | [Français](./README.fr.md) | [Русский](./README.ru.md) | [Deutsch](./README.de.md)
|
|
4
|
+
|
|
5
|
+
Storybook for flowcharts. Auto-discovers Mermaid diagram files from your codebase, organizes them by category, and renders them in a browsable viewer.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+

|
|
9
|
+

|
|
10
|
+

|
|
11
|
+
|
|
12
|
+
## Quick Start
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Install
|
|
16
|
+
npm install -D flowbook
|
|
17
|
+
|
|
18
|
+
# Initialize — adds scripts + example file
|
|
19
|
+
npx flowbook init
|
|
20
|
+
|
|
21
|
+
# Start dev server
|
|
22
|
+
npm run flowbook
|
|
23
|
+
# → http://localhost:6200
|
|
24
|
+
|
|
25
|
+
# Build static site
|
|
26
|
+
npm run build-flowbook
|
|
27
|
+
# → flowbook-static/
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## CLI
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
flowbook init Set up Flowbook in your project
|
|
34
|
+
flowbook dev [--port 6200] Start the dev server
|
|
35
|
+
flowbook build [--out-dir d] Build a static site
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### `flowbook init`
|
|
39
|
+
|
|
40
|
+
- Adds `"flowbook"` and `"build-flowbook"` scripts to your `package.json`
|
|
41
|
+
- Creates `flows/example.flow.md` as a starter template
|
|
42
|
+
|
|
43
|
+
### `flowbook dev`
|
|
44
|
+
|
|
45
|
+
Starts a Vite dev server at `http://localhost:6200` with HMR. Any `.flow.md` or `.flowchart.md` file changes are picked up instantly.
|
|
46
|
+
|
|
47
|
+
### `flowbook build`
|
|
48
|
+
|
|
49
|
+
Builds a static site to `flowbook-static/` (configurable via `--out-dir`). Deploy it anywhere.
|
|
50
|
+
|
|
51
|
+
## Writing Flow Files
|
|
52
|
+
|
|
53
|
+
Create a `.flow.md` (or `.flowchart.md`) file anywhere in your project:
|
|
54
|
+
|
|
55
|
+
````markdown
|
|
56
|
+
---
|
|
57
|
+
title: Login Flow
|
|
58
|
+
category: Authentication
|
|
59
|
+
tags: [auth, login, oauth]
|
|
60
|
+
order: 1
|
|
61
|
+
description: User authentication flow with OAuth2
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
```mermaid
|
|
65
|
+
flowchart TD
|
|
66
|
+
A[User] --> B{Authenticated?}
|
|
67
|
+
B -->|Yes| C[Dashboard]
|
|
68
|
+
B -->|No| D[Login Page]
|
|
69
|
+
```
|
|
70
|
+
````
|
|
71
|
+
|
|
72
|
+
Flowbook automatically discovers the file and adds it to the viewer.
|
|
73
|
+
|
|
74
|
+
## Frontmatter Schema
|
|
75
|
+
|
|
76
|
+
| Field | Type | Required | Description |
|
|
77
|
+
|---------------|------------|----------|------------------------------------|
|
|
78
|
+
| `title` | `string` | No | Display title (defaults to filename) |
|
|
79
|
+
| `category` | `string` | No | Sidebar category (defaults to "Uncategorized") |
|
|
80
|
+
| `tags` | `string[]` | No | Filterable tags |
|
|
81
|
+
| `order` | `number` | No | Sort order within category (default: 999) |
|
|
82
|
+
| `description` | `string` | No | Description shown in detail view |
|
|
83
|
+
|
|
84
|
+
## File Discovery
|
|
85
|
+
|
|
86
|
+
Flowbook scans for these patterns by default:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
**/*.flow.md
|
|
90
|
+
**/*.flowchart.md
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Ignores `node_modules/`, `.git/`, and `dist/`.
|
|
94
|
+
|
|
95
|
+
## How It Works
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
.flow.md files ──→ Vite Plugin ──→ Virtual Module ──→ React Viewer
|
|
99
|
+
│ │
|
|
100
|
+
├─ fast-glob scan ├─ export default { flows: [...] }
|
|
101
|
+
├─ gray-matter │
|
|
102
|
+
│ parse └─ HMR on file change
|
|
103
|
+
└─ mermaid block
|
|
104
|
+
extraction
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
1. **Discovery** — `fast-glob` scans the project for `*.flow.md` / `*.flowchart.md`
|
|
108
|
+
2. **Parsing** — `gray-matter` extracts YAML frontmatter; regex extracts `` ```mermaid `` blocks
|
|
109
|
+
3. **Virtual Module** — Vite plugin serves parsed data as `virtual:flowbook-data`
|
|
110
|
+
4. **Rendering** — React app renders Mermaid diagrams via `mermaid.render()`
|
|
111
|
+
5. **HMR** — File changes invalidate the virtual module, triggering a reload
|
|
112
|
+
|
|
113
|
+
## Project Structure
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
src/
|
|
117
|
+
├── types.ts # Shared types (FlowEntry, FlowbookData)
|
|
118
|
+
├── node/
|
|
119
|
+
│ ├── cli.ts # CLI entry point (init, dev, build)
|
|
120
|
+
│ ├── server.ts # Programmatic Vite server & build
|
|
121
|
+
│ ├── init.ts # Project initialization logic
|
|
122
|
+
│ ├── discovery.ts # File scanner (fast-glob)
|
|
123
|
+
│ ├── parser.ts # Frontmatter + mermaid extraction
|
|
124
|
+
│ └── plugin.ts # Vite virtual module plugin
|
|
125
|
+
└── client/
|
|
126
|
+
├── index.html # Entry HTML
|
|
127
|
+
├── main.tsx # React entry
|
|
128
|
+
├── App.tsx # Layout with search + sidebar + viewer
|
|
129
|
+
├── vite-env.d.ts # Virtual module type declarations
|
|
130
|
+
├── styles/globals.css # Tailwind v4 + custom styles
|
|
131
|
+
└── components/
|
|
132
|
+
├── Header.tsx # Logo, search bar, flow count
|
|
133
|
+
├── Sidebar.tsx # Collapsible category tree
|
|
134
|
+
├── MermaidRenderer.tsx # Mermaid diagram rendering
|
|
135
|
+
├── FlowView.tsx # Single flow detail view
|
|
136
|
+
└── EmptyState.tsx # Empty state with guide
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Development (Contributing)
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
git clone https://github.com/Epsilondelta-ai/flowbook.git
|
|
143
|
+
cd flowbook
|
|
144
|
+
npm install
|
|
145
|
+
|
|
146
|
+
# Local dev (uses root vite.config.ts)
|
|
147
|
+
npm run dev
|
|
148
|
+
|
|
149
|
+
# Build CLI
|
|
150
|
+
npm run build
|
|
151
|
+
|
|
152
|
+
# Test CLI locally
|
|
153
|
+
node dist/cli.js dev
|
|
154
|
+
node dist/cli.js build
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Tech Stack
|
|
158
|
+
|
|
159
|
+
- **Vite** — Dev server with HMR
|
|
160
|
+
- **React 19** — UI
|
|
161
|
+
- **Mermaid 11** — Diagram rendering
|
|
162
|
+
- **Tailwind CSS v4** — Styling
|
|
163
|
+
- **gray-matter** — YAML frontmatter parsing
|
|
164
|
+
- **fast-glob** — File discovery
|
|
165
|
+
- **tsup** — CLI bundler
|
|
166
|
+
- **TypeScript** — Type safety
|
|
167
|
+
|
|
168
|
+
## License
|
|
169
|
+
|
|
170
|
+
MIT
|
package/README.pt-BR.md
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# Flowbook
|
|
2
|
+
|
|
3
|
+
> [English](./README.md) | [한국어](./README.ko.md) | [简体中文](./README.zh-CN.md) | [日本語](./README.ja.md) | [Español](./README.es.md) | **Português (BR)** | [Français](./README.fr.md) | [Русский](./README.ru.md) | [Deutsch](./README.de.md)
|
|
4
|
+
|
|
5
|
+
Storybook para fluxogramas. Descobre automaticamente arquivos de diagramas Mermaid no seu código, organiza por categoria e renderiza em um visualizador navegável.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+

|
|
9
|
+

|
|
10
|
+

|
|
11
|
+
|
|
12
|
+
## Início Rápido
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Instalar
|
|
16
|
+
npm install -D flowbook
|
|
17
|
+
|
|
18
|
+
# Inicializar — adiciona scripts + arquivo de exemplo
|
|
19
|
+
npx flowbook init
|
|
20
|
+
|
|
21
|
+
# Iniciar servidor de desenvolvimento
|
|
22
|
+
npm run flowbook
|
|
23
|
+
# → http://localhost:6200
|
|
24
|
+
|
|
25
|
+
# Construir site estático
|
|
26
|
+
npm run build-flowbook
|
|
27
|
+
# → flowbook-static/
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## CLI
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
flowbook init Configurar Flowbook no seu projeto
|
|
34
|
+
flowbook dev [--port 6200] Iniciar o servidor de desenvolvimento
|
|
35
|
+
flowbook build [--out-dir d] Construir um site estático
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### `flowbook init`
|
|
39
|
+
|
|
40
|
+
- Adiciona os scripts `"flowbook"` e `"build-flowbook"` ao seu `package.json`
|
|
41
|
+
- Cria `flows/example.flow.md` como template inicial
|
|
42
|
+
|
|
43
|
+
### `flowbook dev`
|
|
44
|
+
|
|
45
|
+
Inicia um servidor de desenvolvimento Vite em `http://localhost:6200` com HMR. Qualquer alteração em arquivos `.flow.md` ou `.flowchart.md` é refletida instantaneamente.
|
|
46
|
+
|
|
47
|
+
### `flowbook build`
|
|
48
|
+
|
|
49
|
+
Constrói um site estático em `flowbook-static/` (configurável via `--out-dir`). Faça deploy em qualquer lugar.
|
|
50
|
+
|
|
51
|
+
## Escrevendo Arquivos de Fluxo
|
|
52
|
+
|
|
53
|
+
Crie um arquivo `.flow.md` (ou `.flowchart.md`) em qualquer lugar do seu projeto:
|
|
54
|
+
|
|
55
|
+
````markdown
|
|
56
|
+
---
|
|
57
|
+
title: Fluxo de Login
|
|
58
|
+
category: Autenticação
|
|
59
|
+
tags: [auth, login, oauth]
|
|
60
|
+
order: 1
|
|
61
|
+
description: Fluxo de autenticação de usuário com OAuth2
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
```mermaid
|
|
65
|
+
flowchart TD
|
|
66
|
+
A[Usuário] --> B{Autenticado?}
|
|
67
|
+
B -->|Sim| C[Dashboard]
|
|
68
|
+
B -->|Não| D[Página de Login]
|
|
69
|
+
```
|
|
70
|
+
````
|
|
71
|
+
|
|
72
|
+
O Flowbook descobre automaticamente o arquivo e o adiciona ao visualizador.
|
|
73
|
+
|
|
74
|
+
## Schema do Frontmatter
|
|
75
|
+
|
|
76
|
+
| Campo | Tipo | Obrigatório | Descrição |
|
|
77
|
+
|---------------|------------|-------------|----------------------------------------|
|
|
78
|
+
| `title` | `string` | Não | Título exibido (padrão: nome do arquivo) |
|
|
79
|
+
| `category` | `string` | Não | Categoria na barra lateral (padrão: "Uncategorized") |
|
|
80
|
+
| `tags` | `string[]` | Não | Tags filtráveis |
|
|
81
|
+
| `order` | `number` | Não | Ordem dentro da categoria (padrão: 999)|
|
|
82
|
+
| `description` | `string` | Não | Descrição na visualização detalhada |
|
|
83
|
+
|
|
84
|
+
## Descoberta de Arquivos
|
|
85
|
+
|
|
86
|
+
O Flowbook escaneia estes padrões por padrão:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
**/*.flow.md
|
|
90
|
+
**/*.flowchart.md
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Ignora `node_modules/`, `.git/` e `dist/`.
|
|
94
|
+
|
|
95
|
+
## Como Funciona
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
arquivos .flow.md ──→ Plugin Vite ──→ Módulo Virtual ──→ Visualizador React
|
|
99
|
+
│ │
|
|
100
|
+
├─ scan fast-glob ├─ export default { flows: [...] }
|
|
101
|
+
├─ gray-matter │
|
|
102
|
+
│ parsing └─ HMR na alteração de arquivo
|
|
103
|
+
└─ bloco mermaid
|
|
104
|
+
extração
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
1. **Descoberta** — `fast-glob` escaneia o projeto procurando `*.flow.md` / `*.flowchart.md`
|
|
108
|
+
2. **Parsing** — `gray-matter` extrai o frontmatter YAML; regex extrai blocos `` ```mermaid ``
|
|
109
|
+
3. **Módulo Virtual** — Plugin Vite serve os dados parseados como `virtual:flowbook-data`
|
|
110
|
+
4. **Renderização** — App React renderiza diagramas Mermaid via `mermaid.render()`
|
|
111
|
+
5. **HMR** — Alterações de arquivo invalidam o módulo virtual, disparando um reload
|
|
112
|
+
|
|
113
|
+
## Estrutura do Projeto
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
src/
|
|
117
|
+
├── types.ts # Tipos compartilhados (FlowEntry, FlowbookData)
|
|
118
|
+
├── node/
|
|
119
|
+
│ ├── cli.ts # Ponto de entrada CLI (init, dev, build)
|
|
120
|
+
│ ├── server.ts # Servidor Vite programático e build
|
|
121
|
+
│ ├── init.ts # Lógica de inicialização do projeto
|
|
122
|
+
│ ├── discovery.ts # Scanner de arquivos (fast-glob)
|
|
123
|
+
│ ├── parser.ts # Extração de frontmatter + mermaid
|
|
124
|
+
│ └── plugin.ts # Plugin de módulo virtual do Vite
|
|
125
|
+
└── client/
|
|
126
|
+
├── index.html # HTML de entrada
|
|
127
|
+
├── main.tsx # Entrada React
|
|
128
|
+
├── App.tsx # Layout com busca + barra lateral + visualizador
|
|
129
|
+
├── vite-env.d.ts # Declarações de tipo do módulo virtual
|
|
130
|
+
├── styles/globals.css # Tailwind v4 + estilos customizados
|
|
131
|
+
└── components/
|
|
132
|
+
├── Header.tsx # Logo, barra de busca, contagem de fluxos
|
|
133
|
+
├── Sidebar.tsx # Árvore de categorias colapsável
|
|
134
|
+
├── MermaidRenderer.tsx # Renderização de diagramas Mermaid
|
|
135
|
+
├── FlowView.tsx # Visualização detalhada de fluxo individual
|
|
136
|
+
└── EmptyState.tsx # Estado vazio com guia
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Desenvolvimento (Contribuição)
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
git clone https://github.com/Epsilondelta-ai/flowbook.git
|
|
143
|
+
cd flowbook
|
|
144
|
+
npm install
|
|
145
|
+
|
|
146
|
+
# Desenvolvimento local (usa o vite.config.ts raiz)
|
|
147
|
+
npm run dev
|
|
148
|
+
|
|
149
|
+
# Construir CLI
|
|
150
|
+
npm run build
|
|
151
|
+
|
|
152
|
+
# Testar CLI localmente
|
|
153
|
+
node dist/cli.js dev
|
|
154
|
+
node dist/cli.js build
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Stack Tecnológico
|
|
158
|
+
|
|
159
|
+
- **Vite** — Servidor de desenvolvimento com HMR
|
|
160
|
+
- **React 19** — UI
|
|
161
|
+
- **Mermaid 11** — Renderização de diagramas
|
|
162
|
+
- **Tailwind CSS v4** — Estilização
|
|
163
|
+
- **gray-matter** — Parsing de frontmatter YAML
|
|
164
|
+
- **fast-glob** — Descoberta de arquivos
|
|
165
|
+
- **tsup** — Bundler de CLI
|
|
166
|
+
- **TypeScript** — Segurança de tipos
|
|
167
|
+
|
|
168
|
+
## Licença
|
|
169
|
+
|
|
170
|
+
MIT
|
package/README.ru.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Flowbook
|
|
2
|
+
|
|
3
|
+
> [English](./README.md) | [한국어](./README.ko.md) | [简体中文](./README.zh-CN.md) | [日本語](./README.ja.md) | [Español](./README.es.md) | [Português (BR)](./README.pt-BR.md) | [Français](./README.fr.md) | **Русский** | [Deutsch](./README.de.md)
|
|
4
|
+
|
|
5
|
+
Storybook для блок-схем. Автоматически обнаруживает файлы диаграмм Mermaid в вашем коде, организует их по категориям и отображает в удобном просмотрщике.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+

|
|
9
|
+

|
|
10
|
+

|
|
11
|
+
|
|
12
|
+
## Быстрый Старт
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Установка
|
|
16
|
+
npm install -D flowbook
|
|
17
|
+
|
|
18
|
+
# Инициализация — добавляет скрипты + файл-пример
|
|
19
|
+
npx flowbook init
|
|
20
|
+
|
|
21
|
+
# Запуск сервера разработки
|
|
22
|
+
npm run flowbook
|
|
23
|
+
# → http://localhost:6200
|
|
24
|
+
|
|
25
|
+
# Сборка статического сайта
|
|
26
|
+
npm run build-flowbook
|
|
27
|
+
# → flowbook-static/
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## CLI
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
flowbook init Настроить Flowbook в проекте
|
|
34
|
+
flowbook dev [--port 6200] Запустить сервер разработки
|
|
35
|
+
flowbook build [--out-dir d] Собрать статический сайт
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### `flowbook init`
|
|
39
|
+
|
|
40
|
+
- Добавляет скрипты `"flowbook"` и `"build-flowbook"` в ваш `package.json`
|
|
41
|
+
- Создаёт `flows/example.flow.md` в качестве стартового шаблона
|
|
42
|
+
|
|
43
|
+
### `flowbook dev`
|
|
44
|
+
|
|
45
|
+
Запускает сервер разработки Vite на `http://localhost:6200` с поддержкой HMR. Любые изменения в файлах `.flow.md` или `.flowchart.md` отображаются мгновенно.
|
|
46
|
+
|
|
47
|
+
### `flowbook build`
|
|
48
|
+
|
|
49
|
+
Собирает статический сайт в `flowbook-static/` (настраивается через `--out-dir`). Разверните его где угодно.
|
|
50
|
+
|
|
51
|
+
## Создание Файлов Потоков
|
|
52
|
+
|
|
53
|
+
Создайте файл `.flow.md` (или `.flowchart.md`) в любом месте вашего проекта:
|
|
54
|
+
|
|
55
|
+
````markdown
|
|
56
|
+
---
|
|
57
|
+
title: Поток Авторизации
|
|
58
|
+
category: Аутентификация
|
|
59
|
+
tags: [auth, login, oauth]
|
|
60
|
+
order: 1
|
|
61
|
+
description: Поток аутентификации пользователя с OAuth2
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
```mermaid
|
|
65
|
+
flowchart TD
|
|
66
|
+
A[Пользователь] --> B{Авторизован?}
|
|
67
|
+
B -->|Да| C[Панель управления]
|
|
68
|
+
B -->|Нет| D[Страница входа]
|
|
69
|
+
```
|
|
70
|
+
````
|
|
71
|
+
|
|
72
|
+
Flowbook автоматически обнаружит файл и добавит его в просмотрщик.
|
|
73
|
+
|
|
74
|
+
## Схема Frontmatter
|
|
75
|
+
|
|
76
|
+
| Поле | Тип | Обязательно | Описание |
|
|
77
|
+
|---------------|------------|-------------|---------------------------------------|
|
|
78
|
+
| `title` | `string` | Нет | Отображаемый заголовок (по умолчанию: имя файла) |
|
|
79
|
+
| `category` | `string` | Нет | Категория в боковой панели (по умолчанию: "Uncategorized") |
|
|
80
|
+
| `tags` | `string[]` | Нет | Фильтруемые теги |
|
|
81
|
+
| `order` | `number` | Нет | Порядок сортировки в категории (по умолчанию: 999) |
|
|
82
|
+
| `description` | `string` | Нет | Описание в детальном просмотре |
|
|
83
|
+
|
|
84
|
+
## Обнаружение Файлов
|
|
85
|
+
|
|
86
|
+
Flowbook по умолчанию сканирует следующие шаблоны:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
**/*.flow.md
|
|
90
|
+
**/*.flowchart.md
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Игнорирует `node_modules/`, `.git/` и `dist/`.
|
|
94
|
+
|
|
95
|
+
## Как Это Работает
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
файлы .flow.md ──→ Плагин Vite ──→ Виртуальный модуль ──→ React-просмотрщик
|
|
99
|
+
│ │
|
|
100
|
+
├─ сканирование ├─ export default { flows: [...] }
|
|
101
|
+
│ fast-glob │
|
|
102
|
+
├─ gray-matter └─ HMR при изменении файла
|
|
103
|
+
│ парсинг
|
|
104
|
+
└─ блок mermaid
|
|
105
|
+
извлечение
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
1. **Обнаружение** — `fast-glob` сканирует проект в поисках `*.flow.md` / `*.flowchart.md`
|
|
109
|
+
2. **Парсинг** — `gray-matter` извлекает YAML frontmatter; регулярные выражения извлекают блоки `` ```mermaid ``
|
|
110
|
+
3. **Виртуальный модуль** — Плагин Vite предоставляет распарсенные данные как `virtual:flowbook-data`
|
|
111
|
+
4. **Рендеринг** — React-приложение рендерит диаграммы Mermaid через `mermaid.render()`
|
|
112
|
+
5. **HMR** — Изменения файлов инвалидируют виртуальный модуль, запуская перезагрузку
|
|
113
|
+
|
|
114
|
+
## Структура Проекта
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
src/
|
|
118
|
+
├── types.ts # Общие типы (FlowEntry, FlowbookData)
|
|
119
|
+
├── node/
|
|
120
|
+
│ ├── cli.ts # Точка входа CLI (init, dev, build)
|
|
121
|
+
│ ├── server.ts # Программный сервер Vite и сборка
|
|
122
|
+
│ ├── init.ts # Логика инициализации проекта
|
|
123
|
+
│ ├── discovery.ts # Сканер файлов (fast-glob)
|
|
124
|
+
│ ├── parser.ts # Извлечение frontmatter + mermaid
|
|
125
|
+
│ └── plugin.ts # Плагин виртуального модуля Vite
|
|
126
|
+
└── client/
|
|
127
|
+
├── index.html # Входной HTML
|
|
128
|
+
├── main.tsx # Точка входа React
|
|
129
|
+
├── App.tsx # Макет с поиском + боковая панель + просмотрщик
|
|
130
|
+
├── vite-env.d.ts # Объявления типов виртуального модуля
|
|
131
|
+
├── styles/globals.css # Tailwind v4 + пользовательские стили
|
|
132
|
+
└── components/
|
|
133
|
+
├── Header.tsx # Логотип, поиск, количество потоков
|
|
134
|
+
├── Sidebar.tsx # Сворачиваемое дерево категорий
|
|
135
|
+
├── MermaidRenderer.tsx # Рендеринг диаграмм Mermaid
|
|
136
|
+
├── FlowView.tsx # Детальный просмотр отдельного потока
|
|
137
|
+
└── EmptyState.tsx # Пустое состояние с инструкцией
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Разработка (Вклад)
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
git clone https://github.com/Epsilondelta-ai/flowbook.git
|
|
144
|
+
cd flowbook
|
|
145
|
+
npm install
|
|
146
|
+
|
|
147
|
+
# Локальная разработка (используется корневой vite.config.ts)
|
|
148
|
+
npm run dev
|
|
149
|
+
|
|
150
|
+
# Сборка CLI
|
|
151
|
+
npm run build
|
|
152
|
+
|
|
153
|
+
# Локальное тестирование CLI
|
|
154
|
+
node dist/cli.js dev
|
|
155
|
+
node dist/cli.js build
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Технологический Стек
|
|
159
|
+
|
|
160
|
+
- **Vite** — Сервер разработки с HMR
|
|
161
|
+
- **React 19** — Пользовательский интерфейс
|
|
162
|
+
- **Mermaid 11** — Рендеринг диаграмм
|
|
163
|
+
- **Tailwind CSS v4** — Стилизация
|
|
164
|
+
- **gray-matter** — Парсинг YAML frontmatter
|
|
165
|
+
- **fast-glob** — Обнаружение файлов
|
|
166
|
+
- **tsup** — Сборщик CLI
|
|
167
|
+
- **TypeScript** — Типобезопасность
|
|
168
|
+
|
|
169
|
+
## Лицензия
|
|
170
|
+
|
|
171
|
+
MIT
|