Metadata-Version: 2.4
Name: svgscheme
Version: 0.0.2
Summary: SVG → SCHEME → HTML generator
Author-email: Rus Sh <break1@yandex.ru>
License: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: stringconsts>=0.1.0
Requires-Dist: packaging>=23.0
Requires-Dist: lxml>=5.2.2
Requires-Dist: pyyaml>=6.0.2
Requires-Dist: jsmin>=3.0.1
Provides-Extra: dev
Requires-Dist: pytest>=7.3; extra == "dev"
Dynamic: license-file

# svgscheme

Это бибилиотека генерации интерактивных SVG на базе обычных SVG которые пользователь рисует в SVG редакторе Inkscape.

home repo: https://gitlab.com/break1/svgscheme#

# Кратко и по делу

Процесс создания интерактивных SVG состоит из нескольких частей
- исходная геометрия рисуется пользователем в редакторе Inkscape 1.4 - активно поддерживаются use/xref для переиспользования однажды нарисованных элементов - в том числе из внешних файлов, встраивание происходит автоматически
- в процессе отрисовки некоторым тегам расставляются специальные атрибуты
- запускается конвертер генерирующий на выходе html файл, который работает в браузере и поддерживает
  - любое число различных локалей
  - гиперссылки
  - переключения видимости элементов по группам
  - блинкеры по группам (элементы привлекающие внимание, например для принципиальной электрической схемы)
  - перемещение, зум, вращение через произвольную точку
  - активную миникарту
  - легенду
  - поиск элементов по текстовым тегам, каталожным номерам деталей
  - окно свойства выделенного объекта с отображением картинок, каталожных номеров, гиперссылок
  - LOD - для улучшения производительности отрисовки схемы
  - image-box-ы специальные компоненты на схеме для возможность переключения картинок как слайды в пределах одной области
- дополнительно можно создать yaml файл в котором удобно добавлять текстовые описания, каталожные номера деталей, ссылки на файлы изображений определенных элементов в svg

Генерация возможна вызовом питон кода или CLI утилитой - поддерживаются:
- различные режимы выгрузки - например с встраиванием всех картинок и всех html ассетов внутрь одного html файла для удобства распространения или с внешним расположением ассетов и картинок для публикации на web сайтах
- промежуточный транспортный формат .scheme для встраивания всех use из внешних файлов в один файл для удобства организации распространения внутри desktop приложений


# Примеры генерации svgscheme

- [Периодическая таблица Менделеева](https://break1.gitlab.io/svgscheme/Periodic_table_ru.svg.scheme.html)

- [Принципиальная электрическая схема A9-CAN Сузуки Гранд Витара 2005-2014](https://break1.gitlab.io/svgscheme/A9_CAN.svg.scheme.html)

- [Передняя подвеска Сузуки Гранд Витара 2005-2014](https://break1.gitlab.io/svgscheme/front_suspension.svg.scheme.html)
- [Задняя подвеска Сузуки Гранд Витара 2005-2014](https://break1.gitlab.io/svgscheme/rear_suspension.svg.scheme.html)

# Послесловие
Работа над проектом в активной фазе, документация и функционал будут дополняться
