statiqdev / Statiq.Web

Statiq Web is a flexible static site generator written in .NET.
https://statiq.dev/web
Other
1.64k stars 235 forks source link

mermaid diagram cli module #951

Open dpvreony opened 3 years ago

dpvreony commented 3 years ago

Greetings

Thanks for your efforts on this. I've been working on generating some mermaid diagrams via a module that calls the nodejs cli and a *.mmd pipeline

https://github.com/dpvreony/dpvreonywebsite/blob/main/src/DPVreony.Website/Features/MermaidDiagram/MermaidDiagramModule.cs

https://github.com/dpvreony/dpvreonywebsite/blob/main/src/DPVreony.Website/Features/MermaidDiagram/MermaidDiagramPipeline.cs

if this would be any use\interest\value i can raise a PR

Thanks again

daveaglick commented 2 years ago

Sorry for the extremely late reply 😬. I'm just catching up on some of the issues I missed over the last year.

This sounds really interesting. So you're creating mermaid diagrams at generation time? As SVGs? Are you still using/working on it?

I wonder if this would run in process using the embedded JacaScript engine as opposed through the node CLI. Do you know if there's anything special about running under node, or would the mermaid code theoretically work in any JavaScript runtime?

daveaglick commented 2 years ago

Note to self: it would be good if any future Mermaid module could handle rendering diagrams in-place too. One way to do that would be if the module rendered mermaid content in the document, then it would be up to the pipeline to hand it documents read straight from disk (I.e. .mmd files) or extracted from HTML (which would need to be glued back in too).

dpvreony commented 2 years ago

Greetings. No worries I appreciate how busy things can be.

When I get time I have been using it as part of the statiq pipeline. I have just kept it "simple" by using the NPM CLI as a minimum viable product. https://github.com/mermaid-js/mermaid-cli/blob/master/src/index.js probably shows exactly what you're thinking for in process.

As for "still working on it" when time permits :) i've found it useful to be able to brain dump and commit. an example is https://www.dpvreony.com/articles/designing-vetuviem/ in https://github.com/dpvreony/dpvreonywebsite/tree/main/src/DPVreony.Website/input/articles/designing-vetuviem

There's probably a few changes to make.