diff --git a/README.md b/README.md index 42be79a..6aae299 100644 --- a/README.md +++ b/README.md @@ -1,91 +1,37 @@ -# Forgejo Blog Manager (SSG) +# Forgejo Blog Manager (v0.1.3) > **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. +> **Stack:** Python, Pelican, Flask, Marvin API (Uberspace 8) --- ## 📝 Ü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. +Dieses Tool ermöglicht es, einen statischen Blog auf einem Uberspace 8 zu betreiben. Es bietet ein komfortables Web-Interface für die Autorin, verwaltet Assets (PDF/MP3) und automatisiert den GitOps-Workflow über Forgejo. -### 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. +### Features +* **Admin-Panel:** Flask-Weboberfläche zur Artikeleingabe. +* **Asset-Management:** Automatischer Upload und Verlinkung von Downloads. +* **Uberspace 8 Ready:** Vorbereitet für die Marvin API Integration. +* **Git-Automatisierung:** Automatischer Commit & Push zur CI/CD-Triggerung. --- -## 🏗 Projektstruktur +## 🏗 Struktur -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 -``` +* `src/dlw/admin.py`: Flask-Backend & UI-Logik. +* `src/dlw/git_ops.py`: Git-Workflow-Automatisierung. +* `src/dlw/marvin_ops.py`: Marvin API Client für Uberspace. +* `src/dlw/commands.py`: CLI-Tool `blog-cli`. --- -## 🚀 Installation & Setup +## 🚀 Schnellstart -### 1. Umgebung vorbereiten -```bash -python3 -m venv venv -source venv/bin/activate -pip install . -``` - -### 2. Initialisierung -```bash -blog-cli setup -``` +1. **Installation:** `pip install .` +2. **Setup:** `blog-cli setup` (Initialisiert Ordner) +3. **Start:** `blog-cli start` (Admin-Panel unter Port 5000) --- -## ⚙️ 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* \ No newline at end of file +*Letztes Update: 2026-01-03 | Status: Funktionstüchtig* \ No newline at end of file