18.04.2018 von Felix Höffken

Satzung in Auszeichnungssprache

Warum wir unsere Satzung in Markdown schreiben

Um eine Genossenschaft zu gründen, braucht es auch eine Satzung, daher arbeiten wir momentan gemeinsam mit dem ZdK daran, unsere Vorstellung eines solidarischen Arbeitskollektives in geltendes Recht zu gießen.

Die sehr nützliche Mustersatzung ist als PDF und doc verfügbar.

Da ich aber lieber mit “Markup Languages” ( Auszeichungssprachen ) arbeite, als mit Office-Programmen, beschloss ich, unsere Satzung auf Grundlage der Satzung des CCC Mannheim in LaTeX zu übertragen. Dabei ging ich naiver Weise davon aus, das Dokument problemlos in das ODT-Format transformieren zu können, um dies wiederum Menschen zur Verfügung stellen zu können, die das Dokument in Word öffnen wollen.

Auch nach stundenlanger Suche fand ich keinen sinnvollen Weg - stieß aber zumindest auf Pandoc . Pandoc ist ein in Haskell geschriebener Parser und erlaubt das Umwandeln von verschiedenen Dateiformaten.

Zwar unterstützt Pandoc auch LaTeX, allerdings gab es Probleme mit den diversen LaTeX-Bibliotheken, die ich benutzt habe, um beispielsweise den Präfix ‘§’ vor die Paragraphen zu schreiben. Da mir das Ersetzen aller Bibliotheken zu mühsam war und ich davon ausging, bestimmte Funktionen so nicht umsetzten zu können, entschloss ich mich, die Satzung erneut - diesmal in Markdown - zu schreiben. Das hat auch den Vorteil, dass ich Markdown öfter nutze und damit vertrauter bin - z.B. bei hugo

Das LaTeX-Dokument konvertierte ich mit pandoc -f latex -t markdown -o satzung.md satzung.tex zu markdown. -t markdown definiert das Ausgabeformat und -f latex definiert das Eingabeformat und -o satzung.md den Namen der Ausgabedatei. Danach nutzte ich vim-regex-magic um das Format mehr nach meinem Gefallen zu gestalten.

In der Pandoc Doku fand ich die --reference-doc=FILE Option, auch dank [markdown-resume] (https://github.com/sdsawtelle/markdown-resume) von sdsawtelle , was mir als Anschauungsbeispiel diente.

Basierend auf den Standard-Styles von Pandoc generierte ich die erste Satzung und bearbeitete die Styles in libreoffice. Dieser Schritt war leider nötig, um die Paragraphen automatisch korrekt zu nummerieren. Das fertige Dokument speicherte ich in styles/stlye.odt und kürzte es soweit möglich.

Pandoc nutzt das per reference-doc übergebene Dokument, um die dort definierten Styles auf das neu erstellte Dokument anzuwenden. Daher lässt sich mit dem Befehl pandoc -f markdown --reference-doc=styles/style.odt -o Satzung.odt Satzung.md eine ODT-Datei mit dem gewünschten Aussehen erstellen.

Wir könnten auch mit Pandoc ein PDF oder ein docx erstellen, entschieden uns aber dann doch dafür, das erstellte ODT-Dokument mit libreoffice automatisch umzuwandeln. Das erspart das Pflegen eines docx-Referenzdokuments und stellt sicher, dass sowohl PDF, ODT, als auch docx möglichst gleich aussehen.

Diese Befehle befinden sich nun in der Makefile, sodass nach einer Änderung der Befehl make ausreicht, um alle drei gewünschten Dokumente upzudaten.

Sobald unsere Satzung vervollständigt und gültig ist, wird sie mitsamt meinem Setup auf github.com veröffentlicht und hier verlinkt.

Update 06.10.2018: Die Satzung und das Setup sind jetzt auf github einsehbar.