Mitmachen
Diese Rezeptdatenbank lebt davon, dass Rezepte dazukommen. Diese Anleitung erklärt, wie ihr ein neues Rezept hinzufügt oder ein bestehendes ändert. Ihr braucht dafür keine Programmiererfahrung – aber ein paar kleine Programme müssen einmalig auf eurem Rechner eingerichtet werden.
Was passiert grob: Ihr schreibt eine Textdatei mit dem Rezept, und die Website wird daraus automatisch gebaut und veröffentlicht.
Einmalige Einrichtung (lokal)
Schritt 1: Programme installieren
Ihr braucht vier Dinge auf eurem Rechner:
| Was | Wozu | Windows | macOS |
|---|---|---|---|
| Texteditor | Rezept-Dateien schreiben und bearbeiten | VS Code oder Notepad++ | VS Code oder BBEdit |
| Git | Änderungen verwalten und hochladen | Git for Windows (enthält auch „Git Bash”) | Im Terminal git eingeben → macOS fragt automatisch nach Installation |
| Node.js | Website lokal auf eurem Rechner testen | nodejs.org (Version 22 oder neuer) | Homebrew: brew install node |
| Terminal | Befehle eingeben | Git Bash (liegt Git for Windows bei) | Terminal.app (bereits vorinstalliert) |
Tipp: In VS Code gibt es eine Erweiterung für Cooklang-Syntax-Hervorhebung – sucht im Erweiterungen-Marktplatz nach „Cooklang”. Nicht notwendig, aber angenehm beim Schreiben.
Tipp für Windows: Nach der Installation von Git for Windows könnt ihr überall mit der rechten Maustaste „Git Bash Here” öffnen – das ist euer Terminal.
Schritt 2: SSH-Key erstellen (einmalig)
Mit einem SSH-Key könnt ihr euch sicher bei Codeberg anmelden, ohne jedes Mal ein Passwort eingeben zu müssen.
Öffnet das Terminal und gebt ein:
ssh-keygen -t ed25519 -C "eure@email.de"
Drückt bei allen Rückfragen einfach Enter (der Standardpfad passt, eine Passphrase ist optional).
Danach gibt es zwei Dateien:
~/.ssh/id_ed25519– euer privater Schlüssel (niemals weitergeben!)~/.ssh/id_ed25519.pub– euer öffentlicher Schlüssel (den ladet ihr hoch)
Den Inhalt der öffentlichen Datei könnt ihr so anzeigen:
cat ~/.ssh/id_ed25519.pub
Schritt 3: Codeberg-Account erstellen (einmalig)
Geht auf codeberg.org und legt euch einen kostenlosen Account an.
Zugang zum Repository: Ihr braucht keinen Schreibzugriff auf das Original-Repository. Ihr arbeitet über einen eigenen Fork – eine Kopie des Repositories in eurem Account (siehe Schritt 6). Damit kann jede:r Änderungsvorschläge per Pull Request einbringen, unabhängig von Zugriffsrechten.
Schritt 4: Öffentlichen SSH-Key auf Codeberg hochladen (einmalig)
- Loggt euch bei codeberg.org ein.
- Klickt oben rechts auf euer Profilbild → Settings.
- Im linken Menü: SSH / GPG Keys → Add Key.
- Gebt dem Key einen Namen (z. B. „Mein Laptop”) und fügt den Inhalt aus
~/.ssh/id_ed25519.pubein. - Klickt auf Add Key.
Schritt 5: Git konfigurieren (einmalig)
Damit eure Commits mit eurem Namen und eurer E-Mail-Adresse versehen werden:
git config --global user.name "Euer Name"
git config --global user.email "eure@email.de"
Verwendet am besten dieselbe E-Mail-Adresse wie bei eurem Codeberg-Account.
Tipp für Windows: Führt außerdem diesen Befehl aus, damit Zeilenumbrüche korrekt behandelt werden:
git config --global core.autocrlf true
Schritt 6: Repository forken und klonen (einmalig)
Das „Repository” ist der Ort, an dem alle Dateien der Website gespeichert sind. Ihr arbeitet nicht direkt am Original, sondern an einer eigenen Kopie davon, einem sogenannten Fork – so braucht ihr keinen Schreibzugriff auf das Original-Repository.
-
Geht auf codeberg.org/klimaschutz-einfach-machen/Rezeptdatenbank und klickt oben rechts auf Fork. Übernehmt die vorausgefüllten Angaben und bestätigt mit Fork Repository. Ihr landet danach bei eurer eigenen Kopie unter
codeberg.org/<euer-benutzername>/Rezeptdatenbank. -
Holt euch eine lokale Kopie eures Forks (nicht des Originals):
git clone ssh://git@codeberg.org/<euer-benutzername>/Rezeptdatenbank.git cd Rezeptdatenbank npm installErsetzt
<euer-benutzername>durch euren Codeberg-Benutzernamen.npm installlädt einmalig alle Programmbausteine herunter, die die Website zum Bauen braucht.
Was ist ein Fork? Eine vollständige, eigene Kopie eines Repositories in eurem Account. Ihr könnt darin frei arbeiten, ohne dass es das Original beeinflusst. Über einen Pull Request schlagt ihr eure Änderungen später dem Original vor (siehe Schritt 7 unten).
Neues Rezept anlegen – Schritt für Schritt
Schritt 1: Fork aktualisieren und neuen Branch erstellen
Da ihr an einem Fork arbeitet, kann sich das Original-Repository inzwischen weiterentwickelt haben. Bevor ihr loslegt, gleicht ihr euren Fork damit ab:
- Geht auf die Codeberg-Seite eures Forks (
codeberg.org/<euer-benutzername>/Rezeptdatenbank). Erscheint dort der Button Sync Fork, klickt ihn an – das übernimmt neue Änderungen vom Original in euren Fork. - Holt euch den aktuellen Stand danach lokal:
git checkout main
git pull
git checkout -b rezept/mein-neues-rezept
Was ist ein Branch? Stellt euch die Website wie ein gemeinsames Dokument vor. Ein Branch ist eine persönliche Arbeitskopie davon – ihr könnt darin in Ruhe arbeiten, ohne dass andere sofort betroffen sind. Erst wenn ihr fertig seid, werden eure Änderungen in die „echte” Version übernommen.
Schritt 2: Rezept-Ordner und -Datei anlegen
Rezepte liegen unter src/content/rezepte/<Kategorie>/<Rezeptname>/<Rezeptname>.cook. Legt einen neuen Ordner mit einem
kurzen, beschreibenden Namen an (ohne Umlaute/Sonderzeichen) und darin eine gleichnamige .cook-Datei, z. B.:
src/content/rezepte/Hauptgerichte/Kuerbissuppe/Kuerbissuppe.cook
<Kategorie> ist der grobe Bereich (z. B. Brotaufstriche, Hauptgerichte, Desserts) und bestimmt, wo das Rezept
auf der Website einsortiert wird.
Schritt 3: Rezept schreiben
Eine .cook-Datei besteht aus zwei Teilen: dem Frontmatter (die Infos zum Rezept zwischen den
---) und dem Rezepttext darunter, geschrieben in Cooklang.
---
title: Kürbissuppe
tags:
- Vegan
- Herbst
servings: 4
prep time: 15 Minuten
cook time: 25 Minuten
author: Euer Name
---
= Zubereitung
@Kürbis{500%g} schälen, entkernen und würfeln. @Zwiebel{1} fein hacken.
Zwiebel in @Olivenöl{1%EL} in einem #Topf glasig dünsten, Kürbis zugeben und kurz mitbraten.
Mit @Gemüsebrühe{600%ml} auffüllen und etwa ~{20%Minuten} köcheln, bis der Kürbis weich ist.
Mit dem #Pürierstab fein pürieren, mit @Salz{} und @Pfeffer{} abschmecken.
Frontmatter-Felder:
| Feld | Bedeutung | Pflicht? | Beispiel |
|---|---|---|---|
title |
Name des Rezepts | ja | Kürbissuppe |
tags |
Liste von Schlagworten | nein | Vegan, Herbst |
servings |
Anzahl Portionen | nein | 4 |
prep time |
Vorbereitungszeit | nein | 15 Minuten |
cook time |
Zubereitungszeit | nein | 25 Minuten |
author |
Wer hat das Rezept beigetragen/angepasst? | nein | Euer Name |
Wichtig: Andere Feldnamen als die oben genannten führen zu einem Fehler beim Bauen der Website (nicht zu einem stillen Ignorieren) – so fallen Tippfehler sofort auf.
Cooklang-Kurzreferenz für den Text unterhalb des Frontmatters:
| Element | Syntax | Beispiel |
|---|---|---|
| Zutat mit Menge | @Name{Menge%Einheit} |
@Mehl{200%g} |
| Zutat ohne feste Menge | @Name{} |
@Salz{} |
| Zutat mit Leerzeichen im Namen | @Zwei Wörter{Menge%Einheit} |
@Rote Bete{1%große} |
| Küchengerät | #Name |
#Pfanne |
| Timer | ~{Menge%Einheit} |
~{20%Minuten} |
| Abschnitts-Überschrift | = Titel |
= Vorbereitung |
| Neuer Schritt | Leerzeile | – |
Jede mit @ oder # markierte Zutat/jedes Küchengerät taucht automatisch in der Zutaten- bzw. Küchengeräte-Liste der
Seite auf. Wird eine Zutat später im Text nochmal erwähnt, ohne dass eine zusätzliche Menge dazukommt, einfach ohne @
schreiben – sonst erscheint sie doppelt in der Liste.
Schritt 4: Bilder hinzufügen (optional)
Legt Fotos einfach in denselben Ordner wie die .cook-Datei, mit demselben Namen (plus fortlaufender Nummer bei
mehreren Bildern):
src/content/rezepte/Hauptgerichte/Kuerbissuppe/
├── Kuerbissuppe.cook
├── Kuerbissuppe-1.jpg
└── Kuerbissuppe-2.jpg
Bei einem Bild wird es als einzelnes Titelbild angezeigt, bei zwei oder mehr automatisch als Karussell.
Schritt 5: Seite lokal testen
npm run dev
Dann im Browser http://localhost:4321 öffnen und das neue Rezept kontrollieren. Mit Strg+C
stoppt ihr den Server wieder.
Schritt 6: Änderungen speichern und hochladen
git add .
git commit -m "Kürbissuppe hinzugefügt"
git push -u origin rezept/mein-neues-rezept
Was passiert hier?
git add .– sagt Git: „Merke dir alle meine Änderungen.”git commit -m "..."– speichert die Änderungen mit einer kurzen Beschreibung (wie „Speichern unter” mit Notiz).git push– lädt alles in euren Fork hoch (originzeigt auf euren Fork, nicht auf das Original).
Schritt 7: Pull Request stellen
Geht auf euren Fork bei Codeberg (codeberg.org/<euer-benutzername>/Rezeptdatenbank) – meist erscheint dort direkt
nach dem Push ein Banner mit dem Vorschlag, einen Pull Request zu erstellen. Alternativ öffnet ihr das
Original-Repository und erstellt dort einen
Pull Request von eurem Branch (<euer-benutzername>:rezept/mein-neues-rezept) nach main.
Was ist ein Pull Request? Das ist eine Anfrage: „Ich habe etwas geändert – kann jemand drüberschauen und es freigeben?” So können andere prüfen, ob alles passt, bevor die Änderung live geht.
Sobald der Pull Request angenommen (gemergt) wurde, ist das Rezept auf der Website sichtbar.
Schritt 8: Aufräumen
Nach dem Merge könnt ihr euren Branch (in eurem Fork) löschen:
git checkout main
git pull
git branch -d rezept/mein-neues-rezept
git push origin --delete rezept/mein-neues-rezept
Die ersten drei Befehle löschen den Branch auf eurem Rechner, der letzte löscht ihn auch auf Codeberg.
Technik (Hintergrund)
Die Seite wird mit Astro gebaut. Rezepte werden als
Cooklang-Dateien (.cook) unter src/content/rezepte/ gepflegt und über Astros Content
Collections eingelesen – Fehler im Frontmatter (z. B. Tippfehler bei Feldnamen)
werden dabei schon beim Bauen der Website erkannt, nicht erst danach.
Dateistruktur
src/content/
├── rezepte/
│ └── <Kategorie>/
│ └── <Rezeptname>/
│ ├── <Rezeptname>.cook
│ └── <Rezeptname>-1.jpg (optional, mehrere möglich)
├── legal/ # Impressum, Datenschutz, Kontakt
└── contribute/ # diese Anleitung
Nützliche Git-Befehle
| Befehl | Beschreibung |
|---|---|
git status |
Zeigt geänderte und neue Dateien |
git diff |
Zeigt die konkreten Änderungen im Detail |
git log --oneline |
Kompakte Übersicht der letzten Commits |
git checkout main |
Wechselt zum main-Branch |
git checkout -b <name> |
Erstellt und wechselt zu einem neuen Branch |
git add . |
Nimmt alle Änderungen in den nächsten Commit auf |
git commit -m "..." |
Erstellt einen Commit mit Beschreibung |
git push |
Überträgt Commits zum Remote-Repository |
git pull |
Holt aktuelle Änderungen vom Remote-Repository |
Glossar
| Begriff | Bedeutung |
|---|---|
| Repository | Der zentrale Speicherort aller Dateien der Website – wie ein gemeinsamer Ordner in der Cloud |
| Fork | Eine eigene, komplette Kopie des Repositories im eigenen Account – nützlich ohne Schreibzugriff auf das Original |
| Branch | Eine persönliche Arbeitskopie des Repositories, in der man ungestört arbeiten kann |
| Commit | Ein gespeicherter Zwischenstand – wie „Speichern” mit einer kurzen Notiz, was geändert wurde |
| Pull Request | Eine Anfrage, eigene Änderungen in die Hauptversion zu übernehmen – andere können vorher drüberschauen |
| Merge | Das Zusammenführen eines Branches mit der Hauptversion (main) |
| Frontmatter | Der strukturierte Kopfbereich einer Rezeptdatei zwischen ---, der Metadaten wie Titel und Zutaten-Zeiten enthält |
| Cooklang | Eine einfache Schreibweise für Rezepte, bei der Zutaten (@), Küchengeräte (#) und Timer (~) markiert werden |
| Content Collection | Astros System zum strukturierten Einlesen und Validieren von Inhalten wie den Rezept-Dateien |
| main | Der Haupt-Branch – das ist die „offizielle” Version der Website, die live geschaltet ist |