# Forgejo Blog Manager (SSG) > **Ansatz:** Documentation-Driven Development (DDD) > Dieses Dokument definiert den Funktionsumfang und die Schnittstellen für den Python-basierten Blog-Manager, bevor die finale Implementierung der Logik (Uploads/Rendering) abgeschlossen wird. --- ## 📝 Übersicht Der Forgejo Blog Manager ist ein Tool zur Verwaltung eines statischen Blogs (Pelican). Es bietet der Autorin ein Web-Interface zur Erstellung von Artikeln inklusive Datei-Uploads (PDF/Audio) und automatisiert den Git-Workflow (Commit & Push) zu einer Forgejo-Instanz. ### Kern-Features * **Web-Interface:** Flask-basiertes Formular zur Inhaltserfassung. * **Vorschau-Modus:** Rendering des Artikels vor der Veröffentlichung. * **Asset-Management:** Automatisches Einsortieren von PDF- und Audio-Downloads. * **GitOps:** Automatischer Push in den `master`-Branch zur Triggerung der CI/CD-Pipeline. --- ## 🏗 Projektstruktur Das Projekt folgt einer sauberen `src`-Struktur mit dem Paketnamen `dlw`: ```text forgejo-blog-manager/ ├── src/ │ └── dlw/ │ ├── admin.py # Flask App: Routing & Formulare │ ├── commands.py # CLI Entry Point (blog-cli) │ ├── git_ops.py # GitPython Wrapper │ └── ssg_config/ # Pelican Konfiguration & Templates ├── content/ # Generierte Markdown-Artikel ├── downloads/ # PDF- und Audio-Dateien ├── pyproject.toml # Paket-Konfiguration (PEP 621) └── README.md ``` --- ## 🚀 Installation & Setup ### 1. Umgebung vorbereiten ```bash python3 -m venv venv source venv/bin/activate pip install . ``` ### 2. Initialisierung ```bash blog-cli setup ``` --- ## ⚙️ Lokale Konfiguration Für eine reibungslose Entwicklung empfiehlt es sich, die Projektumgebung in der `~/.profile` (oder `.zshrc`/`.bashrc`) zu hinterlegen. ### Beispiel für `~/.profile` Snippet ```bash # --- FORGEJO BLOG MANAGER SETUP START --- # Pfad zum lokalen Repository export BLOG_PROJECT_ROOT="$HOME/pfad/zu/forgejo-blog-manager" # Flask Konfiguration export FLASK_ENV="development" export APP_SECRET_KEY="dein-super-geheimer-schluessel" # Hilfs-Alias für den schnellen Start alias blog-admin='cd $BLOG_PROJECT_ROOT && source venv/bin/activate && blog-cli start' # --- FORGEJO BLOG MANAGER SETUP ENDE --- ``` *Nach dem Hinzufügen: `source ~/.profile` ausführen.* --- ## 🛠 Nutzung 1. Starten des Admin-Interfaces: `blog-cli start` 2. Öffnen von `http://127.0.0.1:5000` im Browser. 3. Artikel schreiben, Dateien hochladen und auf **Vorschau** klicken. 4. Nach Prüfung auf **Veröffentlichen** klicken. * Das Tool erstellt die `.md`-Datei in `content/`. * Assets werden nach `downloads/` verschoben. * Ein Git-Commit & Push wird automatisch ausgeführt. --- *Status: In Entwicklung (Dokumentations-Phase)* *Letzte Aktualisierung: 2026-01-03*