# Erstellen offizieller Dokumente Folien: https://hackmd.io/@planetmija/rkf0OoWIO --- ## Agenda - Welche Standards eignen sich für Dokumentationen - Was wird benötigt? - Pro/Contra - Versionierung - Beispiele --- ## Welche Formate - Docx/ODT - Latex - Markdown/Asciidoc/reStructuredText - (textile/mediawiki) ...? --- ## Was muss das Format leisten - Offener Standard - Muss von mehreren Personen (auch gleichzeitig) bearbeitet werden können - Mehrere Formate für die Verbreitung müssen generiert werden können (PDF, HTML, ...) - Sollte ohne große Konvertierung und Layout-Desaster funktionieren - Totzdem sollte pandoc das Format zum Konvertieren unterstützen - Versionierung und Nachverfolgbarkeit --- ## Docx/ODT - Pro: - (WYSIWYG) - Zussamenarbeit: Google Doc / Onlyoffice - PDF-Export - Contra: - Wo soll ich anfangen... --- ## Latex - Pro - (Kein WYSIWYG) - Zusammenarbeit: Overleaf - PDF - Sauberes Layout --- ## Latex - Contra - kein natives HTML - nicht trivial zu verwenden - viele Möglichkeiten eine Sache zu erledigen, z.B: Tabellen, Code - macht Konvertierung schwierig - pandoc kann nicht alles übersetzen (z.B. lstlisting mit Highlighting) --- ## Markdown - Pro - Einfach - Zusammenarbeit: HackMD (siehe Foliensatz) und freie Varianten (CodiMD inzwischen HedgeDoc) - HTML mit Jekyll (z.B. Github Pages) - Generell breite Unterstützung bei Github/Gitlab etc. --- ## Markdown - Contra - Welches MD? Kein einheitlicher Standard, sondern viele Dialekte wie GFM und kramdown - benötigt teilweise HTML für Warnings, Tabellen, etc. - Je nach implementiertem Dialekt/Flavor sieht man das Dokument korrekt oder auch nicht - nicht einfach transferierbar in andere Formate --- ## AsciiDoc/reStructuredText - Pro - Speziell für Dokumentationen entwickelt - können mit pandoc jeweils transferiert werden - HTML, PDF als Ausgabeformate unterstützt - unterstützen Tabellen, Warnungen, Code, ... - kein Mix mit HTML notwendig --- ## AsciiDoc/reStructuredText - Contra - Zusammenarbeit: Keinen Online-Editor gefunden, derzeit nur async - Es existieren Möglichkeiten für Sitzungn mit Atom und OSS, z.B. CodeTogether - nicht so viele Möglichkeiten und nicht so flexibel wie Latex oder Word --- ## AsciiDoc (teilweise subjektiv) - RST kompliziertere Tabellen (subjektiv) - ADOC bzw. AsciiDoctor sieht moderner aus und funktioniert mit Ruby - Könnte Vorteile bei Webseiten mit eigenem Theme sein - jekyll-asciidoc für einene Seite mit Jekyll - kann trotzdem schlecht aussehen wg. Theme (s. späteres Beispiel) - pandoc kann nicht von **ADOC** zu anderen Formaten transferieren! --- ## reStructuredText - Readthedocs kann auf Github zugreifen - Seite kann auf RTD und Github Pages liegen - RST unterstützt auch Markdown (myst_parser) für einfache Seiten - Commommark wie HackMD aber leicht andere Erweiterungen - Erzwingt guten Code und sauberes Layout - Wird vermutlich deswegen als kompliziert angesehen --- ## .rst und .md - myst_parser verwendet markdown-it-py-Parser, der auf CommonMark basiert - https://myst-parser.readthedocs.io/en/latest/using/syntax.html - HackMD und HedgeDoc (ehem. CodiMD) verwenden ebenfalls markdown-it - https://hackmd.io/@codimd/markdown-syntax - Jeweils eigene CommonMark-Erweiterungen --- ## Sphinx - Sphinx unterstützt RST und MD - https://www.sphinx-doc.org - Wird vom Executable Book Project verwendet - Soll für Publikationen rund um Jupyter verwendet werden - https://executablebooks.org --- ## Diskussionsvorschlag - Verwendung von CommonMark oder reStructuredText - letzteres für eindeutige Konvertierung - Ermöglich Editoren wie HackMD/HedgeDoc - Bei den Syntax-Erweiterungen eher an MySt orientieren --- ## Versionierung - Git: Github und Gitlab - Tags für veröffentlichte und abgesegnete Versionen - ORCID + DOI in "getaggten" Versionen - Github/Gitlab sind oft bereits integriert, z.B. RTD und HackMD - Overleaf kann auch mit Git versioniert/kontrolliert werden - Traffic Light Protocol muss mit Sichtbarkeit angestimmt werden (Historie) --- ## Beispiele für Tabellen kramdown und CommonMark ``` kramdown: CommonMark: |--- |A|B |A|B |-|- |-|- |1|2 |1|2 |3|4 |3|4 |=== ``` |A|B |-|- |1|2 |3|4 --- ## Beispiele für Tabellen AsciiDoc (inkl. colspan) ``` [width="20%", options="header"] |=== |A|B |1|2 |3|4 |=== [width="20%", options="header"] |=== 2+|title |1|2 |=== ``` --- ## Beispiele für Tabellen RST (inkl. colspan) ``` == == +---+---+ A B | A | B | == == +===+===+ 1 2 | 1 | 2 | 3 4 +---+---+ == == | 3 | 4 | +---+---+ +-------+ | title | +===+===+ | 1 | 2 | +---+---+ ``` --- # Text einbinden * Mit der Anweisung `.. only::` ([rST](https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#including-content-based-on-tags)) ``` .. only:: test and html This text is only shown when using html and test ``` * [MyST](https://myst-parser.readthedocs.io/en/latest/using/syntax.html#directives-a-block-level-extension-point) ``` ```{only} test and html This text is only shown when using html and test ``` ``` --- ## Code für MyST und rST - [rST Beispiel](https://myst-parser.readthedocs.io/en/latest/examples/wealth_dynamics_rst.html) - [rST Code zum Beispiel](https://myst-parser.readthedocs.io/en/latest/_sources/examples/wealth_dynamics_rst.rst.txt) - [MyST Beispiel](https://myst-parser.readthedocs.io/en/latest/examples/wealth_dynamics_md.html) - [MySt Code zum Beispiel](https://myst-parser.readthedocs.io/en/latest/_sources/examples/wealth_dynamics_md.md.txt) --- ## Beispiele für Dokumentationen - jekyll-asciidoc und Bluma Clean Theme ![](https://i.imgur.com/MXVpksU.png =450x) --- ## Beispiele für Dokumentationen - [Github Pages und kramdown](https://nemo-cluster.github.io/betriebskonzept-nemo/) - [reStructuredText mit Github Actions und RTD Theme](https://nemo-cluster.github.io/nemo-docs/) - [gleicher reStructuredText Artikel über readthedocs.io](https://nemo-documentation.readthedocs.io/en/latest/) - Github unterstützt mehrere "Sprachen": - https://github.com/nemo-cluster/nemo-docs/blob/main/docs/betriebskonzept.rst --- ### DANKE! :sheep: https://cluster.nemo.uni-freiburg.de/
{"metaMigratedAt":"2023-06-15T22:43:30.519Z","metaMigratedFrom":"YAML","title":"Erstellen offizieller Dokumente","breaks":true,"description":"Infos zum Erstellen offizieller Dokumente mit offenen Formaten","contributors":"[{\"id\":\"243e3911-cb44-4a0b-8e8b-e2cd42fe7aa1\",\"add\":7788,\"del\":3713}]"}
    499 views