Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add high-level program flow documentation #4515

Open
fapdash opened this issue Nov 30, 2016 · 1 comment
Open

Add high-level program flow documentation #4515

fapdash opened this issue Nov 30, 2016 · 1 comment

Comments

@fapdash
Copy link
Member

fapdash commented Nov 30, 2016

Maybe I missed it but I couldn't find program flow documentation for Asciidoctor.
I think this would help new contributors to get productive faster.

I had a go at a sequence diagram that shows how Asciidoctor, Document and the Converter interact on a high level.
asciidoctor_sequence_highlevel

If someone wants to fix errors:

@startuml
"/bin/asciidoctor" -> "CLI:Invoker": invoke!
"CLI:Invoker" --> "::Asciidoctor": convert
"::Asciidoctor" --> "::Asciidoctor": load (Parse the AsciiDoc source input into an Asciidoctor::Document)
"::Asciidoctor" --> "::Asciidoctor::Document": parse (Parse the AsciiDoc source stored in the Reader into an abstract syntax tree.)
"::Asciidoctor" --> "::Asciidoctor::Document": convert (returns either converted String or filled Converter Object e.g. PdfConverter)
"::Asciidoctor" --> "::Asciidoctor::Document": write (either writes String directly to file or delegates to Converter first)
@enduml

https://www.planttext.com/

@mojavelinux mojavelinux transferred this issue from asciidoctor/asciidoctor.org Nov 8, 2023
@mojavelinux
Copy link
Member

I'd rather avoid having to add diagram processing to the documentation for a single image. I'm also not enamored by the look of the PlantUML output. It's very crude. I'd be open to including a hand-made and well designed diagram that shows the program flow. It will also need to be integrated into the documentation with some supporting text. Perhaps on https://docs.asciidoctor.org/asciidoctor/latest/api/convert-files/ or https://docs.asciidoctor.org/asciidoctor/latest/get-started/

I think there are two experience levels and thus perhaps a need for two separate diagrams. One would be end users and should show the input document being parsed, the converter selected based on the backend keyword, and the converter making the output document. The other one would be for developers (who would be writing extensions or document analysis code), which can get into the load/parse/convert/write detail. End users don't need that level of detail.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants