35 lines
2.7 KiB
Markdown
35 lines
2.7 KiB
Markdown
# STATUS.md — algoritm.space
|
||
|
||
## Текущий статус: v17.0 — DrakonWidget рендеринг + светлая тема
|
||
- [x] Создан проект и репозиторий на Gitea
|
||
- [x] Исследование языка ДРАКОН (RESEARCH.md)
|
||
- [x] Тёмная тема v1-v3 с ручным SVG (ошибка: диаграмма не рендерилась)
|
||
- [x] Светлая тема v4-v7 с DrakonWidget (ошибка: canvas 0px)
|
||
- [x] DrakonWidget v8-v16: исправление размеров canvas, overflow, transform
|
||
- [x] **v17.0**: Canvas 480x360px, 93% белый фон, 7% цветные линии/текст — диаграмма рендерится корректно
|
||
|
||
## Финальная реализация
|
||
- **Библиотека**: drakonwidget.js (официальная библиотека для ДРАКОН диаграмм)
|
||
- **Размер canvas**: 480x360px (вписывается в контейнер 486x400px)
|
||
- **Тема**: Светлая (белый фон #ffffff, серые линии #9ca3af, зелёный #16a34a для "да", красный #dc2626 для "нет")
|
||
- **Масштабирование**: CSS transform scale(0.96) для вписывания в контейнер
|
||
- **Методология ДРАКОН**:
|
||
- Центральная линия (skewer) — основной поток
|
||
- Прямоугольники — действия
|
||
- Шестигранники — вопросы с да/нет ответом
|
||
- Зелёный = да, красный = нет
|
||
- Пунктир — побочные ветви и возвраты
|
||
- Округлённые — начало и конец
|
||
|
||
## Репозиторий
|
||
- URL: http://192.168.1.230:3333/neo/algoritm-space
|
||
- Файлы: index.html (39.5 КБ), drakonwidget.js (722 КБ), STATUS.md, RESEARCH.md
|
||
- Последняя версия: v17.0 — "fix: restore missing }); closing brace for window.addEventListener('load')"
|
||
|
||
## Извлечённые уроки
|
||
1. **Не использовать ручной SVG** для сложных диаграмм — координаты ломаются при каждом изменении
|
||
2. **Использовать специализированную библиотеку** (drakonwidget) для автоматического расчёта координат
|
||
3. **Явно задавать размеры canvas** в render() — иначе getBoundingClientRect() возвращает 0
|
||
4. **overflow: visible** для container — иначе canvas обрезается
|
||
5. **CSS transform scale()** для масштабирования canvas под контейнер
|
||
6. **Не удалять закрывающие скобки** в JS — это ломает весь скрипт |