# [www.netz39.de](https://www.netz39.de) ## Warum Jekyll? 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. ## Neue Blogeinträge erstellen: 1. **Blogeintrag erstellen:** - Erstelle eine neue Markdown-Datei im `_posts`-Verzeichnis unter das aktuelle Jahr. Benenne die Datei nach dem Format `YYYY-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: ```yaml --- 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 --- ``` - Schreibe den Inhalt deines Blogeintrags im Markdown-Format unterhalb des Front Matter. - Bilder eines Blogeintrags werden unter `https://cdn.netz39.de/img/post-img`in das jeweilige Jahr abgelegt. 2. **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. ## Neue Events erstellen: - Analog zu "Blogeintrag erstellen" wird im `_events`-Verzeichnis eine Markdown-Datei erstellt. - Das Front Matter sollte wie folgt aussehen: ```yaml --- layout: event title: "Titel des Events" author: MaxMustermann # optional, soll angegeben werden, wenn du der Ansprechpartner des Events bist 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 " # optional, Kontaktdaten im ical Event location: "Netz39 e.V." # optional, Ort 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.end` darf nicht vor `event.start` liegen - Wenn `event.end` angegeben ist, dann muss `event.start` eine Uhrzeit enthalten - Wenn `event.end` weggelassen wird, dann wird das Ereignis auf der [Homepage](https://www.netz39.de/events) ganztagig und im ical Feed mit Uhrzeit angezeigt - Wenn keine Uhrzeit in `event.start` angegeben ist, dann wird das Event auch im ical Feed ganztagig angezeigt - Mehrtägige Events werden nur mit Angabe der Uhrzeiten korrekt dargestellt ## Installation und lokale Entwicklung mit Docker: 1. Docker und Docker Compose auf deinem System installieren 2. Docker Container im root-Verzeichnis starten: ```bash docker-compose up ``` Der Jekyll-Buildserver wird nun in einem Docker-Container gestartet und ist unter `http://localhost:4000` verfügbar. Du kannst Änderungen vornehmen, und sie werden automatisch in Echtzeit aktualisiert. 3. Nach der Entwicklung den Container mit `docker-compose down` beenden. ## git-lfs Dieses Repository nutzt zur Verwaltung von großen Binärdaten (Bilder und PDFs) [git-lfs](https://git-lfs.com/). Zur Installation folge bitte der [Installationsanleitung für dein Betriebssystem](https://github.com/git-lfs/git-lfs#installing). Die Arbeit mit den Dateien ändert sich durch die Verwendung von git-lfs nicht. ## pre-commit Dieses Reoisitory nutzt [pre-commit](https://pre-commit.com/), um git pre-commit-hooks auszuführen. ### [Installation](https://pre-commit.com/#installation) ```bash # 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-files ``` ### Genutzte hooks Siehe [.pre-commit-config.yaml](./.pre-commit-config.yaml) ## License © Netz39 e.V - Uses [Type-on-strap](https://github.com/sylhare/Type-on-Strap) theme licensed under [The MIT License (MIT)](/LICENSE) - Uses Pictures from [Pexels](https://www.pexels.com/) licensed under Creative Commons Zero (CC0) license - Uses Fonts which are licensed under the [SIL Open Font License (OFL)](https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL)