Boehrsi.de - IT und Gaming Blog

Einfache Check- / Todo-Listen mit Mason, Markdown und Git

Erstellt am event Uhr von account_circle Boehrsi in label Development
Einfache Check- / Todo-Listen mit Mason, Markdown und Git Bild

In den letzten Monaten hatte ich immer wieder das Problem verstreute Check- / Todo-Listen in Textdateien zu nutzen. Diese findet man natürlich nicht wieder und reine Textdateien sind auch nicht gerade dafür bekannt übersichtlich zu sein. Wenn man später einen bereits abgearbeiteten Flow erneut durchführen möchte und sich an einer bestehenden Liste orientieren will, ist dies natürlich keine gute Ausgangsposition.
Aus diesem Grund habe ich mich nach simplen Tools umgesehen, die für meine Zwecke passend sind. Meine Anforderungen waren eine rein textuelle Eingabe ohne extra Tools und eine gute Integration in meine vorhandenen Abläufe, sowie die Speicherung auf dem lokalen Gerät, wie auch online. Ich brauche keine automatische Synchronisation mit meinem Handy, ich brauche keine Live-Synchronisation auf anderen Computern und ich möchte mich nicht mit weiteren Tools und Accounts auseinandersetzen müssen. Im Prinzip benötige ich sortierte, übersichtliche Textdateien, die ich direkt während meiner Arbeit mit den vorhandenen Tools nutzen kann, welche zusätzlich online gesichert werden.

Den Sicherungs-Part konnte ich ziemlich einfach lösen, denn durch meine umfangreiche Nutzung von Git war es hier naheliegend einfach ein weiteres Repository zu erstellen. Auf diesem Weg kann ich alle Dateien lokal bearbeiten und zu gegebener Zeit hochladen. Ein weiterer Pluspunkt ist die Möglichkeit die Inhalte direkt im Web anzusehen oder sogar zu bearbeiten, sofern man ein Git Frontend installiert hat. Ich nutze hier Gitea, wodurch ich besagte Möglichkeiten frei Haus bekomme.
Beim Format war ich ebenfalls relativ schnell am Ziel, denn mein Blog, meine Readme Dateien und viele andere Inhalte sind bereits Markdown Dateien. Selbige sind textuell, bieten aber mit meinem vorhandenen Tooling eine übersichtliche Ansicht, wenn man z.B. Listen nutzt. Außerdem stellt Gitea Markdown Dateien direkt formatiert dar, sodass ich auch hier ohne weiteren Aufwand die besagte übersichtliche Ansicht nutzen kann.
Bleibt nun noch die Frage wie ich meine Listen wiederverwendbar mache und eine solide Ordnerstruktur erzeuge, ohne manuelles Kopieren, denn dies ist aufwendig und fehleranfällig. Die Antwort fand ich im Dart / Flutter Kontext. Dort stolperte ich über das Dart Package Mason, ein Tool welches eigentlich für die Code-Generation genutzt wird. Hier kann man Templates für Source Code erstellen und selbigen in Verbindung mit Variablen automatisch in lauffähigem Code umwandeln. Dies kann z.B. für die initiale Erstellung von Projekten genutzt werden.
Am Ende ist eine Markdown Check- / Todo-Liste aber auch nichts anderes als Text und kann im gleichen Kontext automatisiert erstellt und gefüllt werden. Ich habe mir also einfache Templates mit Markdown Listen erstellt, welche ich Schritt für Schritt abhaken kann. Das Template befülle ich außerdem mit einigen Variablen wie Projektnamen, dem Datum und vielleicht einer Versionsnummer und schon landet alles sortiert im richtigen Ordner. Das Ganze wird in einem Repository verwaltet, also sowohl die Templates, wie auch die eigentlichen Listen. Auf diesem Weg habe ich keinen Overhead, denn das einzig neue ist das einmalige erstellen eines Mason Templates und das Ausführen einiger weniger Mason Befehle, um das jeweilige Template in die eigentliche Check- / Todo-Liste umzuwandeln.

Als Beispiel liegt eine Template Mason Datei (hier gekürzt) im Ordner bricks\flutter_library_release\__brick__\todos\flutter_library_release\{{#snakeCase}}{{project}}{{\snakeCase}}\{{#snakeCase}}{{version}}{{\snakeCase}}\todo.md.

# Information

- Project: {{project}}
- Version: {{version}}
- Timeline: {{date}} - yyyy-mm-dd

# Todos

- [ ] Add features and fixes
- [ ] Add documentation
    - [ ] Update version number

Durch das Ausführen von mason make flutter_library_release und der Eingabe der im folgenden abgefragten Variablen entsteht dann in todos\flutter_library_release\device_marketing_names\0_3_3\todo.md die folgende Datei. Lediglich die Haken und das Enddatum füge ich zu gegebener Zeit manuell ein.

# Information

- Project: device_marketing_names
- Version: 0.3.3
- Timeline: 2022-03-14 - 2022-03-14

# Todos

- [x] Add features and fixes
- [x] Add documentation
    - [x] Update version number

Diesen Flow nutze ich nun für Server-Backups und Updates, für Releases meiner Apps und Libraries und ich werde das Ganze in Zukunft ziemlich sicher noch ausweiten. Bis dato läuft alles ziemlich gut. Falls auch ihr ähnliche Ansätze verfolgen wollt, schaut euch Mason mal genauer an, die entsprechenden Links findet ihr in den Related Links.

Related Links
Kommentare  
Kommentar erstellen
Mit dem Abschicken des Kommentars erklären sie sich mit der in der Datenschutzerklärung dargelegten Datenerhebung für Kommentare einverstanden. Spam, unangebrachte Werbung und andere unerwünschte Inhalte werden entfernt. Das Abonnieren via E-Mail ist nur für E-Mail Adressen erlaubt die Sie rechtmäßig administrieren. Widerrechtliche Abonnements werden entfernt.