TIL: Today I Learned

Dieser Post soll Auftakt einer Reihe sein, in der ich neu erworbenes Wissen teilen möchte.

Anlass ist ein Post, den ich heute früh auf Hacker News gesehen habe: One year of TILs.

Den Anfang macht ein Shortcut, welches ich mir eingerichtet habe, um möglichst schnell einen neuen Blogpost in der TIL-Reihe zu erstellen.

Welche Schritte sind dafür notwendig?

  1. ins passende Directory wechseln
  2. mit hugo new einen neuen Post anlegen
  3. Hugo im Server-Modus starten
  4. Webbrowser öffnen der die aktuelle Version des Blog anzeigt
  5. Editor öffnen und Cursor an die richtige Stelle bringen, um sofort losschreiben zu können

Ich habe mir ein kleine Funktion für die Shell geschrieben, die nach dem Eintippen von blog-til alle diese Schritte nacheinander ausführt:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
blog-til () {
    TIL_BLOG_ROOT="$HOME/Code/marcusjaschen.de"
    if [[ ! -d "$TIL_BLOG_ROOT" ]]; then
        echo "Blog directory not found: $TIL_BLOG_ROOT"
        exit 1
    fi

    cd "$TIL_BLOG_ROOT"

    TIL_DATE=$(date +%Y-%m-%d)
    TIL_FILE=content/blog/$(date +%Y)/$TIL_DATE-til.md

    if [[ ! -f "$TIL_FILE" ]]; then
        hugo new "$TIL_FILE" -k til
    fi

    code --goto "$TIL_FILE":2:14 "$TIL_BLOG_ROOT"
    open http://localhost:1313/
    hugo server -D
}

Ein paar Erläuterungen dazu:

  • meine Blogposts sind chronologisch in Jahres-Subdirectories sortiert, per Command Substitution ($(date ...)) lässt sich der Pfad für die aktuelle Datei leicht bestimmen
  • in Hugo habe ich mir ein passendes Archetype-File til.md angelegt, welches schon Überschrift, Kategorie usw. vorbelegt hat, dieses wird mit hugo new zusammen mit der Option -k til als Vorlage für den Post genutzt:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
---
title: "TIL: "
date: {{ .Date }}
categories:
    - today-i-learned
tags:
    -

---

Lorem ipsum dolor sit amet, …
  • code ist der CLI-Wrapper für Visual Studio Code, es werden das komplette Blog-Projekt ($TIL_BLOG_ROOT) und die neu erzeugte Datei ($TIL_FILE) geöffnet, in der Datei wird der Cursor in Zeile 2, Spalte 14 positioniert (um direkt den Titel eingeben zu können)
  • ein Browser-Fenster mit dem Preview wird geöffnet (open ist ein sehr praktisches macOS-Helferlein)
  • Hugo wird im Server-Modus gestartet, welcher alle Änderungen sofort im Browser sichtbar macht (mit automatischem Refresh usw.)

Was fehlt noch?

Eine übersichtliche Darstellung der TIL-Posts nach Thema gruppiert. Hier kann man mit Hugo sicher etwas passendes bauen, das ist aber eine Aufgabe für einen anderen Tag.

Epilog

Ich bin gespannt, wohin mich diese Reise bringen wird und ob ich die Motivation für regelmäßige TIL-Posts aufbringen kann 🚀