Ethos & Polis — Redaktionsworkflows
Stand: 2026-06-12
Framework: Quarto · Hosting: All-Inkl · Versionskontrolle: GitHub
Zwei Eingabekanäle: Laptop (Positron / Zettlr) und ContentPilot auf fuji-server
Übersicht
Laptop (Positron/Zettlr) ContentPilot (fuji-server)
│ │
│ eigener Text │ KI-generierter Artikel
│ direkt auf main │ cp/article-<slug> Branch
│ │ → Draft Pull Request
▼ ▼
git push Review auf GitHub
│ oder lokal in Positron
└───────────────┬───────────────┘
│
Merge auf main
│
GitHub Actions: Build
│
FTPS-Deploy nach All-Inkl
│
https://ethos-polis.info live
Grundregel: Laptop-Content geht direkt auf main. CP-Content geht immer über einen Draft PR — menschliches Review ist Pflicht vor dem Merge.
Laptop-Workflow (Positron / Zettlr)
Setup einmalig
Zettlr als Workspace auf publikationen/posts/ zeigen:
Zettlr → Datei → Ordner als Workspace öffnen → …/ethos-polis/publikationen/posts/
Damit sind neue Dateien sofort im Repo, ohne Kopieren.
Täglicher Ablauf
1. Vor dem Schreiben — immer:
git pull2. Schreiben in Zettlr oder direkt in Positron.
Neue Datei: Frontmatter-Vorlage aus _templates/post.md kopieren (s. unten).
3. Änderungen einpflegen — in Positrons Source-Control-Seitenleiste (Git-Symbol): - Geänderte Dateien einzeln per + stagen - Commit-Nachricht eingeben → Enter (oder Cmd/Ctrl+Enter) - Sync-Button oben → Push
Kein Terminal nötig für Schritt 3.
4. Deploy läuft automatisch nach dem Push auf main.
Entwurf auf main sichern ohne live zu gehen
draft: true im Frontmatter eintragen. Quarto rendert den Artikel nicht ins Listing und nicht in den RSS-Feed. Wenn fertig: draft: true entfernen, pushen → Artikel erscheint live.
draft: true # entfernen wenn bereit zum VeröffentlichenGrößere Umbauten (Struktur, Theme, SCSS)
Branch anlegen, dann PR:
git checkout -b feature/beschreibung
# … Änderungen …
git push -u origin feature/beschreibung
gh pr create --title "…" --body "…"ContentPilot-Workflow (fuji-server / Hermes)
Ablauf
python3 scripts/cli.py static-stage <package_id>
→ erzeugt Branch cp/article-<slug>
→ schreibt publikationen/posts/<slug>.md + Bild in publikationen/posts/images/
python3 scripts/cli.py static-pr <package_id>
→ öffnet Draft Pull Request auf GitHub
→ Engin reviewed auf GitHub oder lokal (s.u.)
→ Merge → Build → Deploy
Konfiguration auf fuji-server
Datei: /home/karahan/.hermes/projects/contentpilot/config/static_publishing.yaml
static_git:
repo_path: /home/karahan/projects/ethos-polis
base_branch: main
branch_prefix: cp/
content_dir: publikationen/posts
image_dir: publikationen/posts/images
public_base_url: https://ethos-polis.info
file_extension: .mdFrontmatter-Schema
Vorlage: _templates/cp-article.md im Repo.
| Feld | Pflicht | Wert |
|---|---|---|
title |
✅ | Sichtbarer Titel |
description |
✅ | SEO-Teaser, 1–2 Sätze |
date |
✅ | YYYY-MM-DD |
categories |
✅ | Eine der 5 Kategorien (s.u.) |
image |
empfohlen | images/<dateiname>.jpg (relativ) |
draft |
— | true solange kein Merge; weglassen oder false nach Merge |
aliases |
empfohlen | ["/<slug>/"] → Quarto baut Root-URL als Redirect |
source_package_id |
CP-intern | Integer, von Quarto ignoriert |
image_alt |
empfohlen | Alternativtext, von Quarto ignoriert (für spätere Template-Erweiterung) |
Erlaubte Kategorien: - Gesellschaft-Politik - Praevention-Resilienz - Soziale-Arbeit - KI-Digital - Veranstaltung
Was CP nie schreiben darf
assets/scss/
assets/include/
_quarto.yml
leistungen/
.github/workflows/
send.php
.htaccess
index.qmd
Nur erlaubt: publikationen/posts/ und publikationen/posts/images/.
CP-PR lokal reviewen (optional)
Wenn quarto preview vor dem Merge gewünscht:
git fetch origin
git checkout cp/article-slug # Branch auschecken
quarto preview # im Browser prüfen
git checkout main
git merge --no-ff cp/article-slug -m "Merge: Artikeltitel"
git push
git branch -d cp/article-slug
git push origin --delete cp/article-slugWenn GitHub-Diff reicht (Normalfall):
Auf GitHub “Merge pull request” klicken → danach am Laptop:
git pullKernbefehle im Überblick
| Befehl | Wann |
|---|---|
git pull |
Immer vor dem Anfangen |
git push |
Nach Commit in Positron |
git fetch origin |
CP-Branch holen |
git checkout <branch> |
Branch wechseln |
git merge --no-ff <branch> |
CP-Artikel lokal mergen |
git branch -d <branch> |
Lokalen Branch aufräumen |
git push origin --delete <branch> |
Remote-Branch löschen |
GitHub Actions
| Auslöser | Job |
|---|---|
| Push auf beliebigen Branch | Build (Quarto render, Validierung) |
| Pull Request | Build (kein Deploy) |
Push auf main |
Build + Deploy nach All-Inkl |
CP-Branches bekommen damit automatisch einen Build-Check, bevor gemergt wird.