spring-projects / spring-modulith

Modular applications with Spring Boot
https://spring.io/projects/spring-modulith
Apache License 2.0
779 stars 129 forks source link

Support generating markdown with mermaid #844

Open xenoterracide opened 4 days ago

xenoterracide commented 4 days ago

Github supports rendering Mermaid (an alternative to plantuml) in its markdown (no idea on asciidoc). So does microsofts azure thing. It would be nice to have support for emitting markdown with this.

Feels like a nice to have built in.

odrotbohm commented 2 days ago

Can you clarify what exactly you're looking for here? Is it generating diagrams in Mermaid VS PlantUML? Or is it generating Application Module Canvases in Markdown VS. Asciidoctor?

I'm a bit hesitant on the latter, as the support for tables in Markdown is virtually nonexistent (it's primarily using HTML tables). Furthermore, the Asciidoctor output allows transforming it into other markup formats if required.

For the former, I guess we'd have to investigate what the C4 exporter supports. That said, given that PlantUML is so ubiquitously supported that I currently don't see much need for any other format.

xenoterracide commented 2 days ago

PlantUML is so ubiquitously supported

I haven't found that anything really supports it at all. It's only supported by virtue that you are generating images, and even things that support it directly have done so really poorly resulting in ugly output. I can only think of a single app I saw online that supported it. I can't remember its name, one of those live collaboration drawing board tools. It didn't apply any styling to make it not ugly.

This is not to say that it's unusable, I actually like it, and to some extent prefer it.

Is it generating diagrams in Mermaid VS PlantUML?

let's just say mermaid.

Application Module Canvases in Markdown VS. Asciidoctor

Mostly I think I'm thinking about wanting to stick it in places like my README on github, even if that's copypasta, and it'd probably have to be. I'm just clarifying the use case. Mermaid with whatever githubs limited subset is would be sufficient. I think microsofts subset of mermaid is even more limited... basically you don't have to support all of mermaid ;)