Statische Rezeptwebsite mit Pelican und tuxlite_recipes einrichten

Diese Anleitung führt Sie Schritt für Schritt durch den Aufbau einer responsiven Rezeptwebsite mit Pelican — einem in Python geschriebenen Generator für statische Websites und dem Theme tuxlite_recipes. Vorkenntnisse in Pelican werden nicht vorausgesetzt.


Was Sie benötigen

  • Einen Computer mit Linux, macOS oder Windows (unter Windows wird WSL empfohlen)
  • Python 3.10 oder neuer (hier herunterladen)
  • Git (hier herunterladen)
  • Ein Terminal / eine Eingabeaufforderung

Um zu prüfen, ob Python und Git installiert und einsatzbereit sind, öffnen Sie ein Terminal und führen Sie folgende Befehle aus:

python3 --version
git --version

Beide Befehle sollten eine Versionsnummer ausgeben. Falls nicht, installieren Sie das fehlende Programm, bevor Sie fortfahren.


Teil 1 — Pelican installieren

Es empfiehlt sich, Pelican und seine Abhängigkeiten in einer isolierten Python-virtuellen Umgebung zu betreiben, damit sie andere Python-Projekte auf Ihrem System nicht beeinträchtigen.

Schritt 1: Projektordner anlegen

Wählen Sie einen Speicherort für Ihre Rezeptwebsite und legen Sie dort einen Ordner an:

mkdir my-recipe-site
cd my-recipe-site

Schritt 2: Virtuelle Umgebung erstellen und aktivieren

python3 -m venv tuxlite_venv

Anschließend aktivieren:

  • Linux / macOS:
  source tuxlite_venv/bin/activate
  • Windows (WSL oder Git Bash):
  source tuxlite_venv/bin/activate
  • Windows (Eingabeaufforderung):
  venv\Scripts\activate.bat

Ihr Prompt sollte nun (venv) am Anfang anzeigen — das bestätigt, dass die Umgebung aktiv ist. Aktivieren Sie diese Umgebung immer, bevor Sie an Ihrer Website arbeiten.

Schritt 3: Pelican und Markdown-Unterstützung installieren

pip install "pelican[markdown]"

Damit werden Pelican sowie der Markdown-Parser installiert, der es Ihnen ermöglicht, Rezepte im benutzerfreundlichen Markdown-Format statt in reStructuredText zu schreiben.


Teil 2 — Eine neue Pelican-Website erstellen

Pelican enthält einen Quickstart-Assistenten, der die grundlegende Seitenstruktur für Sie anlegt.

Schritt 4: Den Quickstart-Assistenten ausführen

Führen Sie im Ordner my-recipe-site (mit aktiver virtueller Umgebung) folgenden Befehl aus:

pelican-quickstart

Sie werden durch eine Reihe von Fragen geführt. Nachfolgend ein Beispiel mit empfohlenen Antworten:

> Where do you want to create your new web site? [.] 
  → Enter drücken (aktuelles Verzeichnis verwenden)

> What will be the title of this web site?
  → Meine Rezeptsammlung

> Who will be the author of this web site?
  → Ihr Name

> What will be the default language of this web site? [en]
  → de  (oder Enter für Englisch)

> Do you want to specify a URL prefix? e.g., https://example.com (Y/n)
  → n  (kann später gesetzt werden)

> Do you want to enable article pagination? (Y/n)
  → Y

> How many articles per page do you want? [10]
  → Enter drücken

> What is your time zone? [Europe/Rome]
  → Ihre Zeitzone eingeben, z. B. Europe/Berlin oder Europe/Vienna

> Do you want to generate a tasks.py/Makefile to automate generation and publishing? (Y/n)
  → Y

> Do you want to upload your website using FTP? (y/N)  → n
> Do you want to upload your website using SSH? (y/N)  → n
> Do you want to upload your website using Dropbox? (y/N) → n
> Do you want to upload your website using S3? (y/N) → n
> Do you want to upload your website using Rackspace Cloud Files? (y/N) → n
> Do you want to upload your website using GitHub Pages? (y/N) → n

Nach Abschluss des Assistenten sieht Ihr Projektordner so aus:

my-recipe-site/
├── content/          ← Ihre Rezepte kommen hierher
├── output/           ← generiertes HTML (wird beim Build erstellt)
├── tuxlite_venv/     ← Ihre virtuelle Umgebung
├── pelicanconf.py    ← Hauptkonfigurationsdatei
├── publishconf.py    ← Einstellungen für die Veröffentlichung
├── Makefile
└── tasks.py

Teil 3 — Das Theme tuxlite_recipes installieren

Schritt 5: Themes-Ordner anlegen und Theme klonen

mkdir themes
git clone https://codeberg.org/web_pat/tuxlite_recipes themes/tuxlite_recipes

Damit wird das Theme in den Ordner themes/tuxlite_recipes/ innerhalb Ihres Projekts heruntergeladen.

Schritt 6: Pelican mitteilen, welches Theme verwendet werden soll

Öffnen Sie pelicanconf.py in einem Texteditor und fügen Sie folgende Zeile hinzu oder aktualisieren Sie sie:

THEME = 'themes/tuxlite_recipes'

Teil 4 — Die Website konfigurieren

Öffnen Sie pelicanconf.py. Die Datei enthält bereits einige Einstellungen aus dem Quickstart-Assistenten. Nachfolgend eine vollständige Beispielkonfiguration, die gut mit tuxlite_recipes funktioniert — ersetzen Sie die Platzhalter durch Ihre eigenen Werte:

AUTHOR = 'Ihr Name'
SITENAME = 'Meine Rezeptsammlung'
SITEURL = ''  # Leer lassen für lokale Entwicklung; bei Veröffentlichung auf Ihre Domain setzen

PATH = 'content'

TIMEZONE = 'Europe/Berlin'  # Ihre Zeitzone anpassen

DEFAULT_LANG = 'de'

THEME = 'themes/tuxlite_recipes'

# Feed-Einstellungen — für lokale Entwicklung deaktivieren
FEED_ALL_ATOM = None
CATEGORY_FEED_ATOM = None
TRANSLATION_FEED_ATOM = None
AUTHOR_FEED_ATOM = None
AUTHOR_FEED_RSS = None

# Navigationslinks in der Kopfzeile
LINKS = (
    ('Startseite', '/'),
)

# Social-Links (optional — bei Bedarf entfernen)
SOCIAL = (
    ('Mastodon', 'https://mastodon.social/@ihrbenutzername'),
)

DEFAULT_PAGINATION = 10

# Inhalte nach Kategorie-Ordner organisieren
USE_FOLDER_AS_CATEGORY = True

Speichern Sie die Datei.


Teil 5 — Das erste Rezept schreiben

Rezepte werden als einfache Textdateien im Markdown-Format geschrieben und im Ordner content/ gespeichert. Pelican behandelt jede Datei als einen „Artikel“.

Schritt 7: Eine Rezeptdatei erstellen

mkdir -p content/recipes

Erstellen Sie eine Datei namens content/recipes/schokoladenkuchen.md und öffnen Sie sie in Ihrem Texteditor. Fügen Sie folgenden Inhalt ein:

Title: Klassischer Schokoladenkuchen
Date: 2024-01-15
Category: Desserts
Tags: Kuchen, Schokolade, Backen
Summary: Ein saftiger Schokoladenkuchen für jeden Anlass.

## Zutaten

- 200 g Mehl (Type 405)
- 200 g Zucker
- 100 g weiche Butter
- 2 Eier (Größe M)
- 100 ml Vollmilch
- 50 g Kakaopulver
- 1½ TL Backpulver
- 1 TL Vanilleextrakt
- 1 Prise Salz

## Zubereitung

1. Den Backofen auf 180 °C (Umluft 160 °C) vorheizen. Zwei runde Backformen (Ø 20 cm) einfetten und mit Backpapier auslegen.
2. Butter und Zucker cremig schlagen.
3. Die Eier einzeln unterrühren.
4. Mehl, Kakao, Backpulver und Salz sieben und abwechselnd mit der Milch in drei Portionen unter den Teig heben.
5. Vanilleextrakt einrühren.
6. Den Teig gleichmäßig auf die Formen verteilen und 25–30 Minuten backen, bis ein Holzstäbchen sauber herauskommt.
7. 10 Minuten in der Form abkühlen lassen, dann auf ein Kuchengitter stürzen.

## Hinweise

Für ein intensiveres Aroma können Sie 50 ml der Milch durch starken Espresso ersetzen.

Die Zeilen am Anfang (Title, Date, Category, Tags, Summary) sind Metadaten — Pelican nutzt sie, um Ihre Rezepte korrekt zu organisieren und anzuzeigen.

Erklärung der Metadatenfelder

FeldPflichtBeschreibung
TitleJaName des Rezepts
DateJaVeröffentlichungsdatum im Format JJJJ-MM-TT
CategoryNeinZur Gruppierung von Rezepten (z. B. Desserts, Hauptgerichte)
TagsNeinKommagetrennte Schlagwörter
SummaryNeinKurzbeschreibung in der Rezeptübersicht

Teil 6 — Die Website lokal in der Vorschau anzeigen

Schritt 8: Website bauen und bereitstellen

Führen Sie bei aktiver virtueller Umgebung folgenden Befehl aus:

pelican content -r &
pelican --listen

Oder, falls Sie ein Makefile generiert haben, einfach:

make devserver

Öffnen Sie dann Ihren Browser und rufen Sie auf:

http://localhost:8000

Sie sollten nun Ihre Rezeptwebsite mit dem tuxlite_recipes-Theme sehen. Jedes Mal, wenn Sie eine Rezeptdatei speichern, generiert Pelican die Website automatisch neu — laden Sie einfach den Browser neu.

Um den Entwicklungsserver zu beenden, drücken Sie Ctrl+C.


Teil 7 — Rezepte organisieren

Sie können alle Rezepte in einem Ordner ablegen oder nach Kategorien in Unterordner aufteilen. Wenn USE_FOLDER_AS_CATEGORY = True in pelicanconf.py gesetzt ist, wird der Ordnername automatisch zur Kategorie.

Empfohlene Ordnerstruktur:

content/
├── recipes/
│   ├── desserts/
│   │   ├── schokoladenkuchen.md
│   │   └── zitronentarte.md
│   ├── hauptgerichte/
│   │   ├── pasta-carbonara.md
│   │   └── gebratenes-haehnchen.md
│   └── vorspeisen/
│       └── tomatensuppe.md
└── pages/
    └── ueber-mich.md

Dateien in content/pages/ werden als statische Seiten (keine Rezepte) behandelt und erscheinen im Navigationsmenü.


Teil 8 — Statische Dateien (Bilder)

Um Fotos zu Ihren Rezepten hinzuzufügen, legen Sie einen Ordner images innerhalb von content/ an:

mkdir content/images

Kopieren Sie Ihr Bild dorthin, z. B. content/images/schokoladenkuchen.jpg, und teilen Sie Pelican den Speicherort für statische Dateien mit, indem Sie folgendes in pelicanconf.py eintragen:

STATIC_PATHS = ['images']

In einer Rezeptdatei verweisen Sie so auf das Bild:

![Schokoladenkuchen]({static}/images/schokoladenkuchen.jpg)

Das {static}-Tag ist eine Pelican-Abkürzung, die den korrekten Pfad auflöst — unabhängig von der URL-Struktur Ihrer Website.


Teil 9 — Website veröffentlichen

Wenn Sie Ihre Website veröffentlichen möchten, setzen Sie SITEURL in publishconf.py (nicht in pelicanconf.py) auf Ihre tatsächliche Domain:

SITEURL = 'https://www.meinerezepte.beispiel.de'
RELATIVE_URLS = False

Dann bauen Sie die endgültige Version:

pelican content -s publishconf.py

Der Ordner output/ enthält alle HTML-, CSS- und Bilddateien, die Sie auf einen beliebigen Webhosting-Anbieter hochladen können. Da die Website vollständig statisch ist, benötigen Sie nur ein einfaches Webhosting — kein PHP, keine Datenbank, keine spezielle Serversoftware.


Fehlerbehebung

Die Website wird gebaut, erscheint aber ohne Formatierung
Stellen Sie sicher, dass der THEME-Pfad in pelicanconf.py korrekt ist und auf den geklonten Ordner zeigt. Prüfen Sie mit ls themes/tuxlite_recipes, ob der Ordner vorhanden ist.

pelican: command not found
Sie haben wahrscheinlich vergessen, die virtuelle Umgebung zu aktivieren. Führen Sie source tuxlite_venv/bin/activate aus und versuchen Sie es erneut.

Änderungen an Rezepten werden nicht angezeigt
Wenn Sie den Entwicklungsserver manuell statt mit make devserver ausführen, stellen Sie sicher, dass Sie das Flag -r verwendet haben (pelican content -r), um das automatische Neu-Generieren zu aktivieren.

ModuleNotFoundError: No module named 'markdown'
Sie haben Pelican ohne Markdown-Unterstützung installiert. Beheben Sie dies mit:

pip install "pelican[markdown]"

Kurzübersicht

AufgabeBefehl
Virtuelle Umgebung aktivierensource tuxlite_venv/bin/activate
Entwicklungsserver startenmake devserver
Website bauen (Entwicklung)pelican content
Website bauen (Produktion)pelican content -s publishconf.py
Entwicklungsserver beendenCtrl+C

Weiterführende Links

Schreibe einen Kommentar