Try   HackMD

hackmd PlantUML спецификация на интеграцию

Введение

  1. Плагин PlantUML должен быть подключаемым модулем для MarkDown процессора hackMD(codiMD).
  2. Необходимо использовать последние стабильные версии:

PlantUML: 1.2019.6 http://plantuml.com/download
CodiMD 1.3.1 https://github.com/hackmdio/codimd

  1. В комплекте плагина должна быть инструкция по подключению.
  2. Прием работы осущевствляется путем демонстрации исполнителем работы плагина(мне нужно протестить как оно будет реализованно на вашей копии hmd)
  3. Плагин должен прозрачно интегрироватся с hmd через теги:
@uml[style...](path/to/diagram.puml)

и через

@startuml
actor Alice #yellow
participant Bob
Alice->Bob: Auth Request
Bob->Alice: Auth Response
@enduml

Подробная инструкция по использованию интегрированного плагина в схожем проекте: https://gitpitch.com/docs/rich-media-features/uml-diagrams

Инструкция по использованию PlantUML : http://plantuml.com/ru/guide

Путь интеграции

Процесс рендера не должен вызывать задержек в работе интерфейса hmd - иными словами процесс рендера должен осущевствлятся в асинхронном режиме.
Есть 2 пути интеграции:

  1. через запуск рендера в докере и вызова его внутри сервис-воркера страницы через вебсокет соединение

  2. имплементация рендера внутри js-jvm сервис-воркера( например https://plasma-umass.org/doppio-demo/ )

Я-бы хотел чтоб рендер был реализован в виде сервис-воркера, это позволит нам использовать его для предоставления сервиса редактирования для внешних сотрудников/партнеров.
Подводный камень - внедрение viz.js - компонента, необходимого для работы plantuml. Сам plantuml реализован в виде jvm приложения, и интерпритируется в js в момент загрузки его в doppio. собвстенно наиболее подходящая точка интеграции кмк - интеграция viz.js в doppio и запуск platinumuml без модификаций.
Также для оценки вероятно будет полезно изучить интерфейс взаимодействия реализации схожей задачи через использование внешнего рендера:
докер рендера : https://github.com/plantuml/plantuml-server
реализация : https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml#use-plantuml-server-as-render