Unsere Webseite setzt aus folgenden Gründen auf Jekyll, einen statischen Website-Generator:
-
Einfache Handhabung: Jekyll ermöglicht es, Inhalte in Markdown zu schreiben, was die Erstellung und Aktualisierung von Webseiten vereinfacht.
-
Schnelle Ladezeiten: Da Jekyll statische Seiten generiert, werden die Webseiten schnell geladen.
-
GitHub Pages Integration: Jekyll wird von GitHub Pages unterstützt, was bedeutet, dass wir unsere Website direkt aus dem GitHub-Repository hosten können.
-
Blogeintrag erstellen:
-
Erstelle eine neue Markdown-Datei im
_posts-Verzeichnis unter das aktuelle Jahr. Benenne die Datei nach dem FormatYYYY-MM-DD-titel-des-eintrags.md -
Front Matter: Füge am Anfang der Datei das YAML-Front Matter hinzu. Das Front Matter enthält Metadaten für den Blogeintrag, wie z.B. den Layout-Typ, den Titel, den Autor und das Veröffentlichungsdatum. Hier ein Beispiel für das Front Matter:
--- layout: post title: "Titel des Blogeintrags" author: MaxMustermann date: 2023-10-20 feature-img: "https://cdn.netz39.de/img/feature-img.jpg" # optional thumbnail: "https://cdn.netz39.de/img/thumbnail-img.jpg" # optional sponsors: "abaxor,swm" # optional, aber die Sponsoren des Projektes sollten in der sponsors.yml ---
-
Schreibe den Inhalt deines Blogeintrags im Markdown-Format unterhalb des Front Matter.
-
Neue Bilder im cdn-repo ablegen. Sie werden dann automatisch in das CDN kopiert und können über
https://cdn.netz39.de/img/post-img/JAHR/...verlinkt werden.
-
-
Pull Request erstellen:
- Erstelle einen neuen Branch, füge die Markdown-Datei hinzu und committe/pushe sie.
- Erstelle einen Pull Request von deinem Branch zum Hauptbranch im GitHub-Repository.
- Teammitglieder können deine Änderungen überprüfen und den Pull Request akzeptieren.
- Analog zu "Blogeintrag erstellen" wird im
_events-Verzeichnis eine Markdown-Datei erstellt. - Das Front Matter sollte wie folgt aussehen:
--- layout: event title: "Titel des Events" author: MaxMustermann # optional, soll angegeben werden, wenn du der Ansprechpartner des Events bist tags: [example, halloWelt] # every tag will result add the event to the ics feed, the last tag will assign its color event: start: 2023-10-20 19:00:00 # Datum, an dem das Event stattfindet. Die Zeit ist optional end: 2023-10-20 21:00:00 # optional, Zeitpunkt, an dem das Event endet organizer: "Netz39 Team <kontakt@netz39.de>" # optional, Kontaktdaten im ical Event location: "Netz39 e.V." # optional, Ort des Events rrule: "FREQ=MONTHLY;INTERVAL=1;BYDAY=1FR,1TH;DTSTART=20231020T190000" # follows https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html given order is relevant! exdate: "2023-10-20T19:00:00,2023-10-20T19:00:00" # csv seperated values for rrule exceptions --- Beschreibung und Details des Events.
- Unterhalb des Front Matters die Beschreibung des Events in Markdown aufschreiben
- Bei der Angabe der Zeiten müssen folgende Regeln eingehalten werden:
event.enddarf nicht vorevent.startliegen- Wenn
event.endangegeben ist, dann mussevent.starteine Uhrzeit enthalten - Wenn
event.endweggelassen wird, dann wird das Ereignis auf der Homepage ganztagig und im ical Feed mit Uhrzeit angezeigt - Wenn keine Uhrzeit in
event.startangegeben ist, dann wird das Event auch im ical Feed ganztägig angezeigt - Mehrtägige Events werden nur mit Angabe der Uhrzeiten korrekt dargestellt
Sofern Posthorn aktiv ist, werden Events mit unserem Discord Server gesynct. Ein neues Event bei Discord zu erstellen, erstellt automatische einen PR für ein neues Event hier. Sync von der Webseite zu Discord erfolgt über ein slash command (siehe Posthorn README).
- Discord unterstützt keine Tags. Diese werden bei synchronisierten Events automatisch auch an die Beschreibung gehängt
- Discord unterstützt keine ganztägigen Events. Ein Sync ist hier z.Z. nicht möglich
- Um eine reibungslose Synchronisation mit Discord zu gewährleisten sollte sich der Name der Datei aus dem Datum und dem Titel zusammensetzen. Am Beispiel:
2023-10-20_titel_des_events.md
Sonderzeichen, Umlaute und Leerzeichen müssen hier durch ein '_' ersetzt werden.
Die Dateien für Autoren (authors.yml) und Sponsoren (sponsors.yml) finden sich im '_data' dir.
Um einen neuen Autor hinzuzufügen, erweitere die datei um folgende Angaben:
max2: # author-id muss uniq sein
name: "Max2" # Name oder Nickname
avatar: "https://avatars.githubusercontent.com/u/12341832?v=4" # optional
url: "https://github.com/mg-5" # optionalFür Sponsoren:
abaxor:
name: Abaxor
logo: "https://abaxor.de/images/logo-white.svg" # src für das Logo (https://www.w3schools.com/tags/att_img_src.asp)
url: "https://abaxor.de/"Es sollten keine Sponsoren ohne Logo oder Url eingetragen werden.
-
Docker und Docker Compose auf deinem System installieren
-
Docker Container im root-Verzeichnis starten:
docker compose up
Der Jekyll-Buildserver wird nun in einem Docker-Container gestartet und ist unter
http://localhost:4000verfügbar. Du kannst Änderungen vornehmen, und sie werden automatisch in Echtzeit aktualisiert. -
Nach der Entwicklung den Container mit
docker compose downbeenden.
Dieses Repository nutzt zur Verwaltung von großen Binärdaten (Bilder und PDFs) git-lfs. Zur Installation folge bitte der Installationsanleitung für dein Betriebssystem.
Die Arbeit mit den Dateien ändert sich durch die Verwendung von git-lfs nicht.
Dieses Reoisitory nutzt pre-commit, um git pre-commit-hooks auszuführen.
# install package
pip install pre-commit
# install pre-commit-hooks in repo
pre-commit install
# run (new) hooks against all files in repo
pre-commit run --all-filesSiehe .pre-commit-config.yaml
© Netz39 e.V
- Uses Type-on-strap theme licensed under The MIT License (MIT)
- Uses Pictures from Pexels licensed under Creative Commons Zero (CC0) license
- Uses Fonts which are licensed under the SIL Open Font License (OFL)