fedwiki / wiki

Federated Wiki - node server as npm package
https://npmjs.org/package/wiki
Other
339 stars 73 forks source link

What would integration of draw.io with fed wiki be like? #108

Open coevolving opened 6 years ago

coevolving commented 6 years ago

I've been pursuing a better way of drawing maps (vector images) for some time.

As of May 2017, draw.io moved to an Apache 2.0 license. In August 2017, they released desktop versions to complement the browser-based versions that were previously free. See my digest of these events at "Draw.io open source".

There's a repository for jgraph/drawio on Github.

For Dokuwiki, I notice a draw.io Pluign for DokuWiki on Github, and a 2017-2018 forum discussion. I haven't fully investigated these yet.

Instead of trying to replicate the rich functionality in draw.io, what would an integration with federated wiki look like?

WardCunningham commented 6 years ago

From the repo I learn Draw.io is built on mxGraph. The readme for that project is borderline hostile:

If you want to build something like draw.io, GraphEditor is the best example to use as a base.

The npm build is here, but it's not supported. We don't use NPM, nor care about it. Do not submit issues complaining about it being broken, they will be closed. You are welcome to submit PRs to fix any issues.

mxGraph is a 12+ year old project, we won't bend it to fit the latest fad framework, module system, other. They'll all be dead in 2 years and require a re-write, so don't bother submitting issues asking for fadX to be supported.

That said, if you insist on wasting your time on fadX, mxGraph is open source, we encourage you to fork and replace this project (in fact we challenge you to). So far there's monsterGraph (which looks dead) and jjgraph.

mxGraph supports IE 11, Chrome 43+, Firefox 45+, Safari 9.1.x, 10.1.x and 11.0.x, Opera 30+, Native Android browser 5.1.x+, the default browser in the current and previous major iOS versions (e.g. 11.x and 10.x) and Edge 31+.

mxGraph uses no third-party software, it requires no plugins and can be integrated in virtually any framework.

coevolving commented 6 years ago

@WardCunningham Wow, that readme really is something!

I guess there's a little bit of an explanation at bottom of that page.

License

mxGraph is licensed under the Apache 2.0 license. We do not sell any other license, nor do we have an option for paid support.

History

We created mxGraph in 2005 as a commercial project and it ran through to 2016 that way. Our USP was the support for non-SVG browsers, when that advantage expired we moved onto commercial activity around draw.io. mxGraph is pretty much feature complete, production tested in many large enterprises and stable for many years. We actively fix bugs and make minor improvements since it comprises the base of our draw.io stack.

So the value that the authors see isn't in the framework per se, but the stack built above it.

almereyda commented 6 years ago

In Markdown word processor world, https://mermaidjs.github.io/ has become fairly popular with GitLab¹ and HackMD² and has proven usable in real-time sketching and git'ted documenting of charts.

¹ https://docs.gitlab.com/ce/user/markdown.html#mermaid ² https://hackmd.io/s/features#Mermaid

On 25 February 2018 at 04:23, David Ing notifications@github.com wrote:

@WardCunningham https://github.com/wardcunningham Wow, that readme https://github.com/jgraph/mxgraph/blob/master/README.md really is something!

I guess there's a little bit of an explanation at bottom of that page.

License mxGraph is licensed under the Apache 2.0 license. We do not sell any other license, nor do we have an option for paid support.

History We created mxGraph in 2005 as a commercial project and it ran through to 2016 that way. Our USP was the support for non-SVG browsers, when that advantage expired we moved onto commercial activity around draw.io. mxGraph is pretty much feature complete, production tested in many large enterprises and stable for many years. We actively fix bugs and make minor improvements since it comprises the base of our draw.io stack.

So the value that the authors see isn't in the framework per se, but the stack built above it.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/fedwiki/wiki/issues/108#issuecomment-368279819, or mute the thread https://github.com/notifications/unsubscribe-auth/ABka_FwymfAzovREINPKmrbc1tT5nqY4ks5tYNJCgaJpZM4SR8Du .

coevolving commented 6 years ago

I now see "Draw.io GitHub Integration" at https://github.com/jgraph/drawio-github

WardCunningham commented 6 years ago

My github skills are waning. I wrote a longish post about editable representations including AsciiFlow and was about to discuss what I see in mermaidjs when it all disappeared. Just try to imagine I said something profound.

WardCunningham commented 6 years ago

I clicked Edit in the Draw.io GitHub integration and got this dialog:

image

We have had some fun with AsciiFlow where the computer representation and the display representation are one in the same. This means the diagrams remain editable even as they are pasted as text.

I'm not sure we can say the same thing for draw.io diagrams pasted into GitHub wiki as png format documents. I didn't quite get from the example where the computer readable version is kept. The question is how much do you have and what can you do with it when you (or they) unplug from the net.

Mermaid takes a text representation that in some cases looks like that we use as markup for the Graph plugin. That's promising.

If we are happy to only own the prints, not the negatives or the enlarger that prints them, then we have the mechanism to post them with the Assets and Html plugins. This is the approach I've taken with 3d print files.

http://scad.fed.wiki/viewstl.html

In other news, Wikimedia Commons now also hosts 3d files in stl format and has 3d rendering built into their image viewer. These files don't contain enough information to resume modeling but it is enough to feed into your 3d printer.

WardCunningham commented 6 years ago

Wow. Didn't mean to push that close button. But the good news is I did find my post buried under four pages of web research. Now you can decide if I was profound or not.

coevolving commented 6 years ago

There seem to be three schools of thought on drawing, when it relates to wiki.

(1) The diagram should be readable as text.

I followed through Ward's pointer to http://asciiflow.com/. This allows drawing boxes and lines (arrows), but the lines can only be vertical or horizontal, and not diagonal.

(2) The diagram should represent nodes and edges.

Looking at https://mermaidjs.github.io/ (and the Online Live Editor at the bottom of that page, the semantics of nodes and edges are preserved, and it's up to a processor (e.g. Markdown) to figure out the "best" way to represent.

(3) The diagram follows the "picture is worth a thousand words" complicatedness.

A full visual editor (possibly draw.io integrations enables free-drawing easily done by human beings, creating code is otherwise too difficult to code by hand.

I now notice that there was also discussion on Gitlab about Visual UML diagram editor that seems to have continued as Draw.io integration with wiki.

This in addition to the Draw.io GitHub Integration mentioned earlier.

WardCunningham commented 6 years ago

then there is http://tiddlymap.org/

image

cliveb commented 6 years ago

Forking Mind Maps would be fun, more so if weak links worked like paragraphs. Making combining new Mind Maps from a collection useful. I have hundreds of Mindmaps on paper, it's my default note taking. Even on advanced math such as Laplace, W and Fourier transforms.

coevolving commented 6 years ago

@WardCunningham , thanks I had tried Tiddlymap. I had some problems with a loss of data saving a Tiddlywiki, but I can't be sure whether it was user error or the technology. (First time I'm lost meeting notes in years).

Today, I've been looking at Neo4J, and discovering there's more to the technology than just the database. I may play with that some more.