eclipse-apoapsis / ort-server

A scalable server implementation of the OSS Review Toolkit.
Apache License 2.0
14 stars 6 forks source link

Align on either Markdown or Asciidoc documentation #256

Open sschuberth opened 1 month ago

sschuberth commented 1 month ago

The project currently makes use of both Markdown (4 files) and Asciidoc (22 files) for documentation. For consistency, documentation should be aligned on either format.

mnonnenmacher commented 1 month ago

I would prefer Markdown over Asciidoc for the following reasons:

One thing where Asciidoc is clearly better than Markdown is the table syntax, that is terrible in Markdown.

sschuberth commented 1 month ago

Another plus-side of using Asciidoc is that it's also what ORT's template reporter uses, so getting familiar with the syntax could be beneficial.

oheger-bosch commented 1 month ago

My preference is Asciidoc, because in my opinion it offers a great balance between complexity and feature richness - meaning that for typical use cases it is easy to use (and learn) while offering really nice functionality. Its syntax is clear and stringent; some quirks of the Markdown syntax have already been mentioned.

I am not familiar with Mermaid, but from looking at the website, I am not sure whether it supports all the diagram types we use in the documentation. For instance, PlantUML supports complex deployment diagrams with default elements for nodes, databases, message queues, etc.

Another benefit I see is the support in tools like docToolchain. Here multiple documents can be combined to generate documentation in different formats, including websites. We use this internally to deploy our arc42 architecture documentation to GitHub pages. Such an approach could be used to solve the problem that PUML is not rendered natively by GitHub.

sschuberth commented 1 month ago

I am not familiar with Mermaid

FYI, I've been enjoying to use https://mermaid.live/ to learn Mermaid.

For instance, PlantUML supports complex deployment diagrams

Whatever diagram tool we use, for me it's (very close to) a must-have that GitHub can render it as part of its documentation. Less preferably, diagrams would only be rendered when deploying a website or so (in case of Asciidoc, maybe using Antora as an alternative to docToolchain).

Also, we should keep in mind that there might be nice features in Asciidoc per se, which however are not supported on GitHub, see e.g. this issue.

For reference, there are also more Markup languages supported we theoretically could choose from.

mnonnenmacher commented 2 weeks ago

My preference is Asciidoc, because in my opinion it offers a great balance between complexity and feature richness - meaning that for typical use cases it is easy to use (and learn) while offering really nice functionality. Its syntax is clear and stringent; some quirks of the Markdown syntax have already been mentioned.

Are there any specific issues with the Markdown syntax except for tables?

I am not familiar with Mermaid, but from looking at the website, I am not sure whether it supports all the diagram types we use in the documentation. For instance, PlantUML supports complex deployment diagrams with default elements for nodes, databases, message queues, etc.

I don't think we have a big need for complex diagrams, but if Mermaid is good enough for the Kubernetes docs it's probably also good enough for us: https://www.kubernetes.dev/blog/2021/12/01/improve-your-documentation-with-mermaid.js-diagrams/ https://kubernetes.io/docs/contribute/style/diagram-guide/

Mermaid supports C4 deployment diagrams (comptaible with the PUML syntax): https://mermaid.js.org/syntax/c4.html#c4-deployment-diagram-c4deployment

Another benefit I see is the support in tools like docToolchain. Here multiple documents can be combined to generate documentation in different formats, including websites. We use this internally to deploy our arc42 architecture documentation to GitHub pages. Such an approach could be used to solve the problem that PUML is not rendered natively by GitHub.

I believe that there is a lot more tooling available for the Markdown ecosystem. docToolchain looks pretty oldschool, but maybe it's styleable. Some examples for Markdown: