MD2WordPress/QUICKSTART.md
Jörg Lohrer a931ff9ace Docs: Add filter examples to QUICKSTART.md
- 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
2025-11-05 06:12:34 +01:00

239 lines
6.1 KiB
Markdown

# 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)
```bash
source .venv/bin/activate
python workflow.py "https://example.com/artikel.md"
```
### 2. Mehrere URLs aus YAML-Datei
Erstellen Sie `posts.yaml`:
```yaml
posts:
- url: "https://example.com/artikel1.md"
- url: "https://example.com/artikel2.md"
- file: "content/lokaler-artikel.md"
```
Dann ausführen:
```bash
source .venv/bin/activate
python workflow.py posts.yaml
```
### 3. Ganzes Repository (Forgejo/Gitea)
**Alle Markdown-Dateien importieren:**
```bash
source .venv/bin/activate
python workflow.py --repo "https://codeberg.org/user/repo" main
```
**Nur bestimmte Dateien importieren (mit Filter):**
```bash
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:
```bash
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:
```bash
pip install -r requirements.txt
```
## 3. WordPress-Username eintragen
Bearbeiten Sie die `.env`-Datei und tragen Sie Ihren WordPress-Benutzernamen ein:
```env
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`:
```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):
```bash
python workflow.py "https://example.com/artikel.md"
```
### Mehrere URLs aus YAML:
```bash
python workflow.py posts.yaml
```
### Ganzes Forgejo-Repository:
```bash
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:**
```bash
python workflow.py "content/beispiel-beitrag.md"
```
**Oder über YAML:**
```yaml
posts:
- file: "content/beispiel-beitrag.md"
```
```bash
python workflow.py posts.yaml
```
## Was passiert beim Ausführen?
1. ✅ System lädt die Markdown-Datei (von URL oder lokal)
2.**Extrahiert automatisch Metadaten aus dem YAML-Frontmatter:**
- `name` → Titel
- `description`/`summary` → Excerpt
- `image` → Beitragsbild
- `tags` → WordPress-Tags
- `categories` → WordPress-Kategorien (falls vorhanden)
- `author` → Autor
3. ✅ Konvertiert Markdown zu HTML
4. ✅ Prüft ob Beitrag bereits existiert (nach Titel)
5. ✅ Erstellt fehlende Kategorien/Tags
6. ✅ Lädt Beitragsbilder hoch (falls vorhanden)
7. ✅ Erstellt den WordPress-Beitrag
## Frontmatter-Beispiel
Ihre Markdown-Dateien sollten so aussehen:
```markdown
---
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 `.gitignore` und 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
1. **Testen Sie mit dem Beispiel-Beitrag:**
```bash
python workflow.py "content/beispiel-beitrag.md"
```
2. **Testen Sie mit Ihrer eigenen URL:**
```bash
python workflow.py "https://ihre-url.de/artikel.md"
```
3. **Für Batch-Verarbeitung:** Erstellen Sie `posts.yaml` mit mehreren URLs
4. **Für Repository-Import:** Nutzen Sie `--repo` für Forgejo/Gitea
5. **Überprüfen Sie die Beiträge in WordPress**
6. **Bei Erfolg:** Ändern Sie `default_status: "publish"` in den Settings
## Hilfe
Bei Problemen siehe `README.md` → Abschnitt "Fehlerbehebung"