LukeCarrier / mkdocs-drawio-exporter

Exports your Draw.io diagrams at build time for easier embedding into your documentation
https://pypi.org/project/mkdocs-drawio-exporter/
MIT License
77 stars 8 forks source link

Consider implementing headless exports to remove Electron dependency #16

Open LukeCarrier opened 4 years ago

LukeCarrier commented 4 years ago

We're currently using the Draw.io desktop application to perform exports. This Electron application also exposes a CLI that allows us to export specific pages to a range of formats.

Whilst the Electron app is an ideal target for installation on desktops, it's less ideal in headless setups as it requires a running display server in order to do anything, even when we don't want a window.

Some bugs on this:

JGraph have a server-side implementation of exports used in browsers that aren't capable of doing the export locally, which uses Puppeteer. I'm thinking that we should write a client for this and have users run it in an additional container.

LukeCarrier commented 4 years ago

I've been working on this today. The JGraph exporter seems both incomplete and a pain to debug, so I've started picking it apart and reimplementing it with less global state and some more approachable functions. The code's over here, and I'd really appreciate some eyes on it if anyone's got a vested interest in exports under Docker.

Basic JPG export is working for me in LukeCarrier/drawio-export-puppeteer#1, but there's work to be done to get to an MVP and quite a bit more to get to feature parity with the Electron app.