Tool/algroveon-mini-ssg-–-eigener-static-site-generator/

Algroveon-Mini-SSG – Eigener Static Site Generator

Static Site Generator in Python mit Browser-Admin-UI, direktem Deploy via SFTP/FTP, KI-gestützter Mehrsprachigkeit und flexiblem Jinja2-Template-System.

Dieses Projekt ist ein Static Site Generator (SSG) für mehrsprachige Websites. Gemeint ist damit ein System, das aus Inhalten und Vorlagen fertige HTML-Seiten erzeugt. Der komplette Ablauf bleibt dabei in Python: ohne npm und ohne JavaScript-Build-Toolchain, also ohne die sonst oft übliche zusätzliche Kette aus Frontend-Werkzeugen zum Bauen, Bündeln und Verarbeiten und ohne die sonst oft üblichen zusätzlichen Frontend-Werkzeuge. Im Mittelpunkt steht eine browserbasierte Admin-Oberfläche, über die Inhalte gepflegt, Websites gebaut und direkt auf Webserver übertragen werden können.

Admin-UI – der zentrale Arbeitsbereich

Die Admin-Oberfläche setzt lokal bewusst auf Flask und ist kein nachträglicher Zusatz, sondern der zentrale Arbeitsbereich des gesamten Systems. Für die lokale Nutzung ist das passend, für ein ordentliches öffentliches Hosting sollte davor aber ein sauber konfigurierter Webserver wie Nginx mit einer sicheren Hosting-Umgebung stehen. Von hier aus läuft der komplette Redaktions- und Veröffentlichungsprozess:

Admin-UI – Datei-Explorer mit aufgeklapptem DE-Ordner
Datei-Explorer
Admin-UI – Markdown-Editor mit geöffneter Datei
Markdown-Editor
Admin-UI – Einstellungen (Website, FTP/SFTP, LLM)
Einstellungen
  • Datei-Explorer – Inhaltsbaum aller Markdown-Dateien, sortiert nach Sprache und Typ
  • Markdown-Editor – Split-Live-Preview, Toolbar, Vollbild-Modus (eigene Web-Komponente, kein npm)
  • Neues Dokument – Wizard mit Vorlagen für Blog-Beitrag, Projekt oder Seite; Frontmatter wird automatisch vorbelegt
  • Volltext-Suche – Suche über alle Markdown-Inhalte des Projekts
  • Design-Tab – Templates direkt im Browser bearbeiten; site-spezifische Anpassungen überschreiben das Theme, ohne das Original zu verändern
  • Übersetzungssystem – vollständige Unterstützung für KI-gestützte Übersetzungen mit lokalen LLMs oder Cloud-LLMs
  • Multi-Site-Modus – mehrere Sites parallel über eine gemeinsame Admin-UI verwalten

Build und Deploy: ein Klick

Der Build startet build.py und zeigt den Output als Live-Stream im Browser. Beim Deploy werden nur geänderte Dateien hochgeladen (MD5-basierter Abgleich):

  • SFTP – via paramiko, Passwort im OS-Schlüsselbund (macOS Keychain / Linux Secret Service)
  • FTP – klassisches FTP für einfache Hoster, ohne weitere Dependencies
  • Verbindungstest – prüft Zugangsdaten vor dem eigentlichen Upload
  • Inkrementell – nur Dateien mit geändertem MD5-Hash werden übertragen

Template-System

Templates sind Jinja2-HTML-Dateien unter themes/<theme>/. Das Theme wird in site.yaml zugewiesen. Über den Design-Tab lassen sich Templates site-spezifisch anpassen – die Änderungen werden in sites/<site>/templates/ gespeichert und haben Vorrang vor dem Theme-Original. Layouts werden per Frontmatter-Feld zugewiesen (layout: post, layout: project usw.).

Mehrsprachigkeit

Die Inhalte liegen unter content/<lang>/, die URLs folgen dem Schema /<lang>/seite.html. Für jede Sprache wird eine eigene Navigation gerendert. Fehlt eine Übersetzung, greift die Fallback-Logik, statt direkt auf eine 404-Seite zu laufen.

KI-gestützte Übersetzung

translate.py übersetzt Markdown-Inhalte per LLM. Unterstützte Provider:

  • Ollama (lokal) – native Ollama-API, inkl. automatischem VRAM-Management
  • OpenAI – GPT-4o-mini und andere Modelle direkt
  • OpenAI-kompatibel – Mistral, LM Studio, beliebige lokal gehostete Endpoints

Das System erkennt veraltete Übersetzungen per SHA-256-Hash (Quellinhalt + übersetzte Frontmatter-Felder). Ändert sich eine Quelldatei, wird nur diese neu übersetzt. Codeblöcke bleiben erhalten, die Frontmatter-Struktur ebenfalls. Der gesamte Prozess läuft als SSE-Stream mit Live-Output im Browser.

Repository Status
sebmeisinger / algroveon-mini-ssg

SFTP-Konfiguration und Deploy-Credentials aktuell hart verdrahtet. Refactoring für öffentlichen Release läuft.

[SYS] Sanitizing config layer
Awaiting Refactor