Specification
This is the specification for the diagram languages — collectively called Oxigram.
Yes, you’ve read that correct “languages”.
Oxigram follows the UNIX-philosophy1.
The Implications for Oxigram are, that it doesn’t allow composing diagram types,
Instead users should create multiple smaller diagrams,
of which each should have the goal to inform a reader of a specific piece of information.
This increases the readability and usefulness of diagrams,
by lessening cognitive complexity.
Declarative
All diagram languages are designed to be declarative.
They don’t describe how to create the diagram, or how it should look,
but instead the state of it.
Types and Extensions
In Oxigram each diagram type also has its own filetype and extensions.
The filetype and extension always match for each given diagram type.
The conversion from type to filetype is done by appending .og to the diagram type.
Example
| diagram type | usecase |
|---|---|
| filetype | usecase.og |
| file extension | .usecase.og |
Formatting and Syntax
Hard Tabs
All indentation must use exactly one hard tab per nesting level.
This allows everyone to decide for themselves how wide tabs are displayed.
Double Quotes
All free-form text has to be enclosed by double quotes.
Single quotes may generally be more legible than double quotes.
However, English is the primary language used for programming and documentation around the globe.
English frequently uses the apostrophe (') in contractions,
because of this, single quotes are not a good option for free-form text,
as they would require escaping.
Themes
Oxigram provides two themes.
oxigram: an opinionated theme (default)iso19505: an ISO 195052-conform theme
-
Do One Thing and Do It Well: https://en.wikipedia.org/wiki/Unix_philosophy ↩