Jekyll: deutsche Monatsnamen bei Datumsausgabe

In meinem Jekyll-Blog gebe ich an einigen Stellen formatierte Datumsangaben, wie z.B. das Veröffentlichungsdatum eines Beitrags, aus. Standardmäßig wird bei Verwendung des Liquid-Filters date bei Ausgabe des Monatsnamen via %B der Monatsname auf Englisch ausgegben. Leider gibt es hier wohl keine einfache Konfigurationsmöglichkeit, um die Sprache anzupassen. Aus diesem Grund verwende ich hierfür einen kleinen Codeschnipsel, der mir die Ausgabe des Monatsnamen auf Deutsch ermöglicht.

Verwendete Software für diesen Beitrag
  • Jekyll v4.0.0

Code für deutsch-formatierte Datumsausgabe

In eurem _include-Verzeichnis erstellt eine Datei namens date-german.html mit folgendem Inhalt:

{% assign formattedDate = '' %}

{% if include.showDay %}
    {% assign formattedDate = include.date | date: '%-d' | append: '. '%}
{% endif %}

{% assign monthNames = 'Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember' %}
{% assign monthNames = monthNames | split: ',' %}
{% assign month = include.date | date: '%-m' | minus: 1 %}

{% assign formattedDate = formattedDate | append: monthNames[month] %}
{% assign formattedDate = include.date | date: '%Y' | prepend: ' ' | prepend: formattedDate %}
Liquid - Datei: _include/date-german.html

Anschließend könnt ihr an beliebiger Stelle, z.B. innerhalb eurer Beiträge, die erstellte Datei einbinden und ihr ein Datum übergeben:

{% include date-german.html date=post.date %}
Veröffentlichungsdatum: {{ formattedDate }}
HTML - Datei: _posts/mein-beitrag.html

Die Ausgabe sieht dann wie folgt aus:

26. Mai 2020

Bei der Ausgabe einer Monatsarchiv-Seite kann es bspw. auch nötig sein, dass der Tag nicht mit angezeigt wird. Das könnt ihr durch folgenden Aufruf erreichen:

{% include date-german.html date=post.date showDay=true %}
Monatsarchiv: {{ formattedDate }}
HTML - Datei: _posts/mein-beitrag.html

Analog hierzu die Ausgabe:

Mai 2020

Hinweis "Quick & Dirty"

Bei dem hier vorgestellten Code handelt es sich nur um eine "Quick & Dirty"-Lösung. Aktuell funktioniert der Code nur zur Ausgabe von deutschen Monatsnamen. Möchte man auch andere Sprachen und/oder z.B. Wochentagsnamen übersetzen, so sollte man idealerweise ein entsprechendes Plugin erstellen oder ein bestehendes Plugin verwenden.

Ich habe es nicht selber ausprobiert, aber das Plugin jekyll-i18n-date sieht diesbzgl. vielversprechend aus.

Fazit

Auch wenn Jekyll bzw. Liquid standardmäßig keine deutsch-formatierte Datumsaugabe ermöglicht, kann diese Funktionalität mit wenig Aufwand schnell nachgerüstet werden.

Feedback

Für Feedback zum Beitrag, seien es Fragen, Korrigierungen und/oder Anregungen, könnt ihr mir gerne eine Nachricht per E-Mail oder Mastodon schreiben (siehe Kontakt).