
Reladraw: мова діаграм, де розташування визначає автор, а не алгоритм
Нова текстова мова для діаграм Reladraw зібрала 366 балів на Hacker News. Вона залишає всі рішення щодо розташування у вихідному файлі, задаючи позиції відносно інших елементів, а не передаючи їх автоматичному рушію.
Нова текстова мова для діаграм привернула увагу Hacker News: проєкт Reladraw, опублікований на GitHub під ліцензією Apache-2.0, зібрав 366 балів і понад сотню коментарів. Він написаний на TypeScript, не використовує сторонніх бібліотек під час виконання і складається з парсера, розв'язувача, рендерера SVG, консольної утиліти та браузерного майданчика.
Місце між автоматичним і ручним розташуванням
Автор описує проблему як вибір між двома родинами інструментів. Mermaid, Graphviz і D2 після оголошення вузлів і зв'язків розставляють усе самі, що перестає працювати, щойно в голові є конкретна картинка. draw.io, Excalidraw і Figma дають повний контроль, але кожна правка перетворюється на повільну ручну роботу.
Reladraw має зайняти проміжне місце. Кожна позиція задана відносно чогось іншого, і координат у файлі немає: справжнє твердження з документації виглядає так: node resolver right of parser. Проміжок є мінімальною відстанню, а не точною, тому третій вузол між двома іншими розсуває їх рівно настільки, скільки йому потрібно.
Як читається мова
У файлі одне твердження на рядок, блоків немає, а відступи ігноруються. Ім'я з точкою означає вкладеність: server.docker малюється всередині server. Для зв'язку можна вказати, з якого боку вузла він виходить, з якого входить і через який проміжок проходить дорогою.
Довідковий приклад arch.reladraw відтворює намальовану вручну діаграму draw.io 44 твердженнями, використовуючи вказівки на кшталт above-left of hub і between cluster.desktop1 and cluster.laptop1. Розв'язувач не шукає розташування, а обчислює відстані; за замовчуванням вузли не перекриваються.

Чому це розраховано на агентів
Аргумент автора такий: найчастіше діаграму не малюють, а змінюють. З піксельними координатами агент мусить відновити картину з чисел, а за автоматичного розташування його взагалі ніде не записано. Коли позиція задана, правка означає зміну речення. У репозиторії є навичка для агентів, яка встановлюється командою npx skills add reladraw/reladraw -g.

Чого ще немає
Наступним великим пунктом у списку стану проєкту названо звіт діагностики: сьогодні інструмент або малює, або падає, і не може сказати, що не так із картиною, яку він успішно намалював. У дискусії один коментатор згадав рушій розташування TALA з D2 як альтернативу з більшим ручним контролем; автор відповів, що TALA залишає автоматичне розташування і лише додає способи його підправляти. Повідомлений збій із заокругленням зв'язків виправили на майданчику.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.