docs: update STATUS.md to v17.0

This commit is contained in:
neo committed 2026-06-23 18:43:37 +05:00
1 parent be97af5a0d
commit c1cd7b8628
1 file changed
+31 -2
+31 -2
View File
@@ -1,6 +1,35 @@
# STATUS.md — algoritm.space # STATUS.md — algoritm.space
## Текущий статус: v8.0 — DrakonWidget рендеринг + светлая тема ## Текущий статус: v17.0 — DrakonWidget рендеринг + светлая тема
- [x] Создан проект и репозиторий на Gitea - [x] Создан проект и репозиторий на Gitea
- [x] Исследование языка ДРАКОН (RESEARCH.md) - [x] Исследование языка ДРАКОН (RESEARCH.md)
- [x] Тёмная тема v1-v3 с ...[truncated] - [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 — это ломает весь скрипт