- Added --filter option examples for repository imports - Included practical filter patterns (posts/*/index.md, etc.) - Removed experimental warning as feature is now tested - Added real-world example with FOERBICO repository
6.1 KiB
Schnellstart-Anleitung
⚠️ Wichtige Hinweise
Autor-Zuordnung: Beiträge werden dem importierenden WordPress-Benutzer zugeordnet (nicht dem Autor aus dem Frontmatter).
Empfehlung: Starten Sie mit einzelnen URLs zum Testen, bevor Sie Batch-Imports durchführen.
Überblick
Das System extrahiert automatisch alle Metadaten aus dem YAML-Frontmatter Ihrer Markdown-Dateien:
- name → WordPress-Titel
- description oder summary → Excerpt
- image → Beitragsbild
- tags → WordPress-Tags
- categories → WordPress-Kategorien
- author → WordPress-Autor (aktuell nur extrahiert, nicht zugeordnet)
Sie müssen nur noch die URL zur Markdown-Datei angeben!
Drei Verwendungsmodi
1. Einzelne URL (Am einfachsten! ⭐ Empfohlen zum Testen)
source .venv/bin/activate
python workflow.py "https://example.com/artikel.md"
2. Mehrere URLs aus YAML-Datei
Erstellen Sie posts.yaml:
posts:
- url: "https://example.com/artikel1.md"
- url: "https://example.com/artikel2.md"
- file: "content/lokaler-artikel.md"
Dann ausführen:
source .venv/bin/activate
python workflow.py posts.yaml
3. Ganzes Repository (Forgejo/Gitea)
Alle Markdown-Dateien importieren:
source .venv/bin/activate
python workflow.py --repo "https://codeberg.org/user/repo" main
Nur bestimmte Dateien importieren (mit Filter):
source .venv/bin/activate
python workflow.py --repo "https://git.rpi-virtuell.de/Comenius-Institut/FOERBICO_und_rpi-virtuell" main --filter 'Website/content/posts/*/index.md'
Filter-Beispiele:
'posts/*/index.md'- Nur index.md in posts/-Unterverzeichnissen'Website/content/posts/*/index.md'- Mit vollständigem Pfad'content/*.md'- Alle .md-Dateien direkt in content/
Hinweis: Der Filter unterstützt Wildcards (*) für Verzeichnisnamen.
Schnellstart-Schritte
1. Virtuelle Umgebung aktivieren
Aktivieren Sie zuerst die Python-Umgebung:
source .venv/bin/activate
Sie sollten jetzt (.venv) am Anfang Ihrer Kommandozeile sehen.
2. Abhängigkeiten installieren
Die Python-Pakete sind bereits installiert. Falls Sie sie neu installieren müssen:
pip install -r requirements.txt
3. WordPress-Username eintragen
Bearbeiten Sie die .env-Datei und tragen Sie Ihren WordPress-Benutzernamen ein:
WORDPRESS_URL=https://news.rpi-virtuell.de
WORDPRESS_USERNAME=IHR_USERNAME_HIER # ← Hier eintragen!
WORDPRESS_APP_PASSWORD=UIVI 4Tdy oojL 9iZG g3X2 iAn5
4. posts.yaml anpassen (Optional - nur für Batch-Verarbeitung)
Für einzelne URLs brauchen Sie keine YAML-Datei!
Für mehrere Beiträge erstellen Sie posts.yaml:
posts:
- url: "https://ihre-url.de/artikel.md"
- file: "content/lokaler-artikel.md"
settings:
default_status: "draft"
Das war's! Alle Metadaten (Titel, Tags, Kategorien, Bild) kommen aus dem Frontmatter der Markdown-Dateien.
5. Workflow ausführen
Stellen Sie sicher, dass die virtuelle Umgebung aktiviert ist (siehe Schritt 1), dann:
Einzelne URL (empfohlen für Tests):
python workflow.py "https://example.com/artikel.md"
Mehrere URLs aus YAML:
python workflow.py posts.yaml
Ganzes Forgejo-Repository:
python workflow.py --repo "https://codeberg.org/user/repo" main
Testen mit dem Beispiel-Beitrag
Ein Test-Beitrag mit vollständigem Frontmatter ist in content/beispiel-beitrag.md.
Direkter Test:
python workflow.py "content/beispiel-beitrag.md"
Oder über YAML:
posts:
- file: "content/beispiel-beitrag.md"
python workflow.py posts.yaml
Was passiert beim Ausführen?
- ✅ System lädt die Markdown-Datei (von URL oder lokal)
- ✅ Extrahiert automatisch Metadaten aus dem YAML-Frontmatter:
name→ Titeldescription/summary→ Excerptimage→ Beitragsbildtags→ WordPress-Tagscategories→ WordPress-Kategorien (falls vorhanden)author→ Autor
- ✅ Konvertiert Markdown zu HTML
- ✅ Prüft ob Beitrag bereits existiert (nach Titel)
- ✅ Erstellt fehlende Kategorien/Tags
- ✅ Lädt Beitragsbilder hoch (falls vorhanden)
- ✅ Erstellt den WordPress-Beitrag
Frontmatter-Beispiel
Ihre Markdown-Dateien sollten so aussehen:
---
name: "Mein Artikel-Titel"
description: "Eine kurze Zusammenfassung des Artikels"
image: "https://example.com/bild.jpg"
tags:
- WordPress
- Tutorial
- Open Source
categories:
- Tutorials
author:
- Max Mustermann
---
# Artikel-Inhalt
Hier beginnt der eigentliche Inhalt...
Das System versteht auch Schema.org-Metadaten (wie im beispiel-beitrag.md)!
Wichtige Hinweise
- Duplikate: Beiträge mit gleichem Titel werden NICHT doppelt erstellt
- Medien: Bilder mit gleichem Dateinamen werden NICHT doppelt hochgeladen
- Status: Standard ist "draft" - Sie können dies auf "publish" ändern
- Sicherheit: Die
.env-Datei ist in.gitignoreund wird nicht committed
Beispiel-Ausgabe
Direkt-Modus: Verarbeite URL: https://example.com/artikel.md
Verbinde mit WordPress: https://news.rpi-virtuell.de
============================================================
Verarbeite Markdown von URL: https://example.com/artikel.md
============================================================
Titel: Die Kraft der Gemeinschaft: Prozesse statt Strukturen
Beitrag 'Die Kraft der Gemeinschaft' erstellt (ID: 123, Status: draft)
✅ Erfolgreich: Beitrag erstellt (ID: 123)
Nächste Schritte
-
Testen Sie mit dem Beispiel-Beitrag:
python workflow.py "content/beispiel-beitrag.md" -
Testen Sie mit Ihrer eigenen URL:
python workflow.py "https://ihre-url.de/artikel.md" -
Für Batch-Verarbeitung: Erstellen Sie
posts.yamlmit mehreren URLs -
Für Repository-Import: Nutzen Sie
--repofür Forgejo/Gitea -
Überprüfen Sie die Beiträge in WordPress
-
Bei Erfolg: Ändern Sie
default_status: "publish"in den Settings
Hilfe
Bei Problemen siehe README.md → Abschnitt "Fehlerbehebung"