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.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
+ ![Vite](https://img.shields.io/badge/vite-6.x-646CFF?logo=vite&logoColor=white)
8
+ ![React](https://img.shields.io/badge/react-19.x-61DAFB?logo=react&logoColor=white)
9
+ ![Mermaid](https://img.shields.io/badge/mermaid-11.x-FF3670?logo=mermaid&logoColor=white)
10
+ ![TypeScript](https://img.shields.io/badge/typescript-5.x-3178C6?logo=typescript&logoColor=white)
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
+ ![Vite](https://img.shields.io/badge/vite-6.x-646CFF?logo=vite&logoColor=white)
8
+ ![React](https://img.shields.io/badge/react-19.x-61DAFB?logo=react&logoColor=white)
9
+ ![Mermaid](https://img.shields.io/badge/mermaid-11.x-FF3670?logo=mermaid&logoColor=white)
10
+ ![TypeScript](https://img.shields.io/badge/typescript-5.x-3178C6?logo=typescript&logoColor=white)
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
@@ -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
+ ![Vite](https://img.shields.io/badge/vite-6.x-646CFF?logo=vite&logoColor=white)
8
+ ![React](https://img.shields.io/badge/react-19.x-61DAFB?logo=react&logoColor=white)
9
+ ![Mermaid](https://img.shields.io/badge/mermaid-11.x-FF3670?logo=mermaid&logoColor=white)
10
+ ![TypeScript](https://img.shields.io/badge/typescript-5.x-3178C6?logo=typescript&logoColor=white)
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
+ ![Vite](https://img.shields.io/badge/vite-6.x-646CFF?logo=vite&logoColor=white)
8
+ ![React](https://img.shields.io/badge/react-19.x-61DAFB?logo=react&logoColor=white)
9
+ ![Mermaid](https://img.shields.io/badge/mermaid-11.x-FF3670?logo=mermaid&logoColor=white)
10
+ ![TypeScript](https://img.shields.io/badge/typescript-5.x-3178C6?logo=typescript&logoColor=white)
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