Files
board-viewer/README.md
vitya 7cebeda219 docs(readme): fix emoji legend + fill quick start [skip-tdd: visual]
closes board-viewer-readme-emoji-fix

- Correct emoji set:  open / 🔴 in-progress / 🟡 paused / 🔵 blocked / 🟢 done
  (was /🟡/🟣/🔴/🟢 — pre-correction set from initial brainstorm)
- Filled TBD Quick start with npm test / typecheck / cli build / serve cmds
- Added Deploy + Architecture sections for new contributors

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 15:39:45 +03:00

45 lines
1.7 KiB
Markdown

# board-viewer
## About
Read-only HTML kanban-viewer над `.tasks/*.md` + Gitea API. Рендерит 5-колоночную доску (⚪ open / 🔴 in-progress / 🟡 paused / 🔵 blocked / 🟢 done) по агрегированным таскам из всех whitelisted проектов.
Хост: `board.kzntsv.site` за traefik на VDS. Обновление: cron-тик ~5 мин, перегенерация статической HTML.
Design: `.wiki/concepts/board-viewer.md` (canonical). Process trace: `~/projects/.workshop/.archive/2026-05-22-board-viewer.md`.
## Quick start
```bash
npm install
npm test # 43 tests
npm run typecheck
# Local build (writes ./dist):
node --experimental-strip-types src/cli.ts <path-to-auth.toml>
# auth.toml needs: gitea_url, gitea_token, board_viewer_repos = ["owner/repo", ...]
# See deploy/auth.toml.example for the full shape.
# Then open dist/index.html via any static server, e.g.
( cd dist && python -m http.server 8765 ) &
# → http://localhost:8765/
```
## Deploy
See `deploy/README.md` — Docker-compose stack on VDS, Traefik route + basic-auth.
## Architecture
```
src/parser.ts STATUS.md (markdown) → StatusBlock[] (pure)
src/gitea.ts Gitea HTTP API (DI'd fetch) → file content + last commit ISO + raw URL
src/reader.ts readBoard(client, repos) → TaskRecord[] (orchestrator)
src/render.ts renderBoard(records, opts) → HTML string (pure)
src/cli.ts load config → reader → render → dist/index.html + dist/static/
static/ CSS + ESM JS (filter, drawer, toggle-grouping)
```
Read-only: write-side intentionally absent. Drag-drop blocked on upstream
`projects-meta` bug cluster — see brainstorm trace.