HappenApps / Quiver

Quiver documentation and issue tracker
2.26k stars 109 forks source link

Enhancement: Uml Diagrams #48

Closed catesandrew closed 9 years ago

catesandrew commented 9 years ago

Add UML Diagrams as a cell type. Also not sure how easy it would be to incorporate PlantUML if not impossible but mentioning it as it is quite popular.

ylian commented 9 years ago

How is this different from #47? Both are UML diagrams. Should we just choose one?

catesandrew commented 9 years ago

47 is just sequence diagrams which I think is easy to incorporate while this one looks more challenging if not impossible. If you are able to use plantuml then 47 is redundant, if not, then jumly looks like a good way to render uml diagrams. but I don’t think as important as sequence diagrams, just saying.

ylian commented 9 years ago

I see. Is PlantUML only available as in Java? I would need a JavaScript library to implement this.

ylian commented 9 years ago

http://jumly.tmtk.net/ seems to be lightest, but still at 56KB. js-sequence-diagrams has an easier syntax, but relies on Raphael and Underscore (another 100KB).

I will have to do some research on these UML libraries. Ideally something with a nice syntax and super lightweight.

LeonardoGentile commented 9 years ago

:+1: even tough https://stackedit.io/ is not a lightweight solution it has support for uml-diagram, maybe it could be a handy reference

ylian commented 9 years ago

@LeonardoGentile Thanks for the reference. stackedit.io seems to be using http://bramp.github.io/js-sequence-diagrams/ for sequence diagrams, and http://adrai.github.io/flowchart.js/ for flowcharts.

I integrated sequence diagrams in #47. Give it a try if you like. Performance is okay on desktop but painfully slow on iOS.

PlantUML can't be integrated because it's written in Java. Jumly uses the CoffeeScript syntax. Although I am a big CoffeeScript fan (2000 lines of CoffeeScript in Quiver source code), not everyone would appreciate that syntax in a UML diagram. So close this in favor of #47.

LeonardoGentile commented 9 years ago

:+1: @ylian we could still give Jumly a try just for gathering feedbacks

LeonardoGentile commented 9 years ago

@ylian did you take a look at https://github.com/DavidDurman/joint ? It's quite big, not lightweight at all but it has tons of features and uses svg, maybe a custom version could fit into this project?

ylian commented 9 years ago

@LeonardoGentile Thanks for the reference. JointJS looks quite comprehensive. I will see if it makes sense to integrate.

ylian commented 9 years ago

@LeonardoGentile I don't think JointJS is a good fit for Quiver. JointJS is mostly a GUI-based diagramming library. I think a text-based diagramming library fits Quiver better, since it's simpler and basically just another variant of Quiver's code cell. That's how Markdown cells and LaTeX cells are implemented anyway.

mshibanami commented 7 years ago

@ylian

These VS Code extensions use the jar file of PlantUML on TypeScript. Does this help you to support PlantUML?