mermaid-js / mermaid

Generation of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown
https://mermaid.js.org
MIT License
72.36k stars 6.59k forks source link

Documentation restructure and update #2910

Open DanielOaks opened 2 years ago

DanielOaks commented 2 years ago

Hi all! I'm Daniel, a tech writer at Sendle. πŸ‘‹ I've used Mermaid a whole bunch and absolutely love it, but it can be pretty difficult to convince and teach others how to use it.

I'd like to work on restructuring and updating Mermaid's documentation, to make it easier to read through and to help it look nicer! Making an issue is the best way to get thoughts together before diving straight into PRs, so I'll explain more below.

If you've got any thoughts about this, please feel free to toss them in this issue or reach out to me on the Mermaid Slack! I've made the #docs channel over there to coordinate if anyone else is interested.

πŸ€” Why update Mermaid's docs?

Mermaid is an amazing tool! And with new GitHub, Notion, and other integrations, it's being used by more people every day. Including by more non-developers. The current documentation works, but I think a restructure could make things a lot more findable, especially for people new to the project.

Here's some issues I think a restructure could solve:

In addition to the restructure, an update like https://github.com/mermaid-js/mermaid/issues/2163 would make the docs look a lot more modern, let people who like Mermaid justify using it in projects, and help bring more writers into ✨ the Mermaid universe ✨

✍️ What to do?

The first thing I'd like to do is restructure the sidebar, including creating, merging, and splitting pages as described below. Once that's cleaned up, I think either customising docsify to look more modern or looking at alternative docs systems like ReType makes sense.

✨ Proposed new sidebar layout

Welcome

This section is a bit of a grab-bag for important pages, and for people who are evaluating Mermaid.


Using Mermaid

This section is all about actually using Mermaid to make diagrams. If you want to make a diagram, then this first section will be super helpful for you!


Diagrams

This section is just a lil rename of the Diagram Syntax section, with an extra page up the top.


Developers

This section is for people developing Mermaid and wanting to integrate Mermaid into their own projects!


Community

This section's about the Mermaid community, and how the community can help Mermaid!


Security

This'll basically be the current Security page, just dressed up as its own section because it probably deserves it.


knsv commented 2 years ago

Hi! Sorry for the slow response. I think your proposal looks interesting. Are you still interested in working with this?

Thanks, Knut

DanielOaks commented 2 years ago

Hi @knsv, sure! No worries at all. I'm definitely still interested in this πŸ‘€

qurm commented 2 years ago

Hi - I'd be happy to assist here with reviewing or editing.

I am a long time but casual user of Mermaid, so I dont know it too well, so I'll appreciate having some well structured documents. I agree with Daniels comments and I think the structure has not kept up with the growth of Mermaid. e.g. it can be hard to tell what applies to the whole tool, and what is specific to a single diagram type.

knsv commented 2 years ago

This could be aligned with another documentation issue: #3484

DanielOaks commented 2 years ago

Oh, nice call out! I'll keep an eye on how that issue progresses and look at performing this work in conjunction with / after it resolves.

weedySeaDragon commented 2 years ago

This is great, @DanielOaks . I'm also interested in helping out with the documentation. I wrote my thoughts in a Discussion (I don't think Discussion were enabled when you submitted this.) I'd like to see some milestones defined for the documentation. Your proposal would definitely be a great one!

I'm a software engineer (since the 80s!) and a large part of my focus is to always make sure the information is organized in the best way possible for its users. Documentation -- of all kinds -- most definitely is a part of it

I have been using plantUML, but have be frustrated at its disorganization from the start. (Both with the documentation, how the project is done, and the underlying code.) A friend told me about mermaid and I'm glad. Although it doesn't yet have all of the bells and whistles as plantUML, it's got a sound foundation.

Glad you're going to be able to help!
Perhaps we can continue developing ideas over in the Discussions.

emersonbottero commented 2 years ago

https://github.com/mermaid-js/mermaid/pull/3678. It should shows conflicts but I can't see them.

weedySeaDragon commented 2 years ago

I can't see them iether @emersonbottero . Perhaps one of the maintainers can help out: @sidharthv96 ? @knsv ?

nirname commented 1 year ago

There is also opened issue #3744

nirname commented 1 year ago

Stripe documentation is quite often referred as extremely good, and I fully agree with that. Have a look at their interactive tutorials. Our goal should be to add something as eloquent and self-descriptive.

nirname commented 1 year ago

When I started contributing, I realized that contribution part of the documentation is far from perfect. The most important commands to start development were missing or scattered across multiple documents. I did not received much guidance through the process. So that is what the majority of the developers face (if not everyone) when they want to join the project.

The same can be applied for regular users. They need a clear and easy guide.

Here is the list of ideas, not only about development section. Some of them are already done or in progress, I keep them here too for the record.

I wish the following improvements would be done:

I am not sure that:

have to be under Development section, because it is basically example of usage, although an advanced one. Not sure about Theming though.

Rework About Mermaid:

Other:

The opening sentence at the main page:

It is a JavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically

sounds unnatural to me. It is grammatically correct but seems fussy and over complicated (renders ... to create)

emersonbottero commented 1 year ago

Sidebar does not keep its state (folded unfolded) while switching between pages. I have not researched yet, maybe it is Vitepress-related cc we should update to the latest vitepress (we can wait when it is released, now it is rc10)

Encr1pt0r commented 1 year ago

Hi @nirname and @DanielOaks,

Thank you for making such detailed information about updates to the documentation on Mermaid!

Looking at contributing here for the first time and I have forked and cloned the develop branch onto my machine.

I also have some questions, on the "Contributing Documentation" page is it true that you still need to fork from master instead of develop? Also, I looked at the package.json file and could not find the pnpm docs:dev script, is there a new alternative that I should be aware of if I were to make changes?

I am willing to work on anything you see as a good fit as well, I just picked one that looked interesting to me

emersonbottero commented 1 year ago

the repo has several packages.. the docs script are here

nirname commented 1 year ago

Hi @Encr1pt0r, thanks for your interest. Contributing documentation section is still under development. We will update it ASAP. Command docs:dev is inside another package:

npx pnpm run --filter mermaid docs:dev