- Added format_author_as_tag() function to convert author names to tag format - Author names automatically added to tags with spaces replaced by underscores - Example: 'Jörg Lohrer' → 'Jörg_Lohrer' tag - Enables author filtering via WordPress tag taxonomy - Updated documentation to reflect new author handling approach - Version bump to 0.3.0
6.1 KiB
6.1 KiB
Changelog
Version 0.3.0 (2025-10-01)
Feature - Autor-zu-Tag-Mapping 🏷️
Neues Feature: Autoren werden automatisch als Tags hinzugefügt!
Funktion:
- Autor aus Frontmatter wird extrahiert (
author,#staticSiteGenerator.author,#commonMetadata.creator) - Autor-Name wird automatisch als Tag im Format
Vorname_Nachnamehinzugefügt - Leerzeichen werden durch Unterstriche ersetzt
- Mehrfache Unterstriche werden konsolidiert
Beispiel:
author: Jörg Lohrer
tags:
- OER
- Community
Ergebnis:
- Tags in WordPress:
OER,Community,Jörg_Lohrer - Filterung nach Autoren über WordPress-Tag-Taxonomie möglich
Technische Details:
- Neue Funktion
format_author_as_tag()inmarkdown_parser.py - Autor-Tag wird nur hinzugefügt, wenn Autor vorhanden und noch nicht in Tags
- Integration in
extract_wordpress_metadata()nach Autor-Extraktion
Version 0.2.2 (2025-10-01)
Bugfix - Kritisch! 🐛
Tags/Kategorien werden jetzt korrekt zugewiesen
Problem: Tags und Kategorien wurden als existierend erkannt, aber NICHT dem Beitrag zugewiesen.
Ursache:
- WordPress-API gibt bei
term_exists-Fehler dieterm_idin den Fehler-Daten zurück - Diese
term_idwurde nicht genutzt, es wurde nur erneut gesucht (was nichts fand) - Ohne Tag-IDs konnte WordPress die Tags nicht zuweisen
Lösung:
- Extrahiere
term_iddirekt auserror_data['data']['term_id'] - Bei
term_exists-Code: Nutze die zurückgegebeneterm_idsofort - Fallback: Suche erneut falls Extraktion fehlschlägt
- Gezielte Suche mit
search-Parameter für bessere Performance
Vorher:
Fehler beim Erstellen des Tags 'OER': 400 Client Error...
Details: {'code': 'term_exists', 'data': {'term_id': 3866}}
# Tag-ID 3866 wurde NICHT genutzt → Tag nicht zugewiesen
Nachher:
→ Tag 'OER' existiert bereits (ID: 3866)
→ Tag 'OEP' gefunden (ID: 3867)
Gesamt Tag-IDs: [3866, 3867, ...]
# Tag-IDs werden dem Beitrag zugewiesen ✅
Verbesserungen
get_tags()undget_categories()mit optionalemsearch-Parameter- Reduziert API-Calls durch gezielte Suche statt alle Tags/Kategorien zu laden
- Debug-Ausgaben zeigen jetzt auch gefundene (nicht nur neue) Tags/Kategorien
Version 0.2.1 (2025-10-01)
Bugfixes
Frontmatter-Parsing für Hash-Kommentar-Stil
Problem: Frontmatter mit #commonMetadata: (als YAML-Kommentar) wurde nicht korrekt geparst.
Lösung:
- Unterstützung für flaches Frontmatter (wenn
#commonMetadata:als Kommentar behandelt wird) creativeWorkStatusunddatePublishedwerden jetzt auch direkt (nicht verschachtelt) erkannt- Status-Konvertierung:
Published→publish(case-insensitive mit "publish" in)
Veröffentlichungsdatum für alle Status
Problem: Datum wurde bei draft-Posts nicht gesetzt.
Lösung:
date_gmtzusätzlich zudatesetzen für explizite Kontrolle- Hinweis bei draft-Posts, dass Datum erst beim Veröffentlichen aktiv wird
Verbesserungen
Debug-Ausgaben
- Tag-Verarbeitung: Zeigt gefundene Tags aus Frontmatter und zugewiesene IDs
- Post-Erstellung: Zeigt alle gesendeten Daten (Tags, Kategorien, Datum)
- WordPress-Response: Zeigt zurückgegebene Daten von WordPress
- Erfolgsmeldung: ✅ für bessere Sichtbarkeit
Beispiel-Ausgabe:
Tags aus Frontmatter: ['Tag1', 'Tag2']
→ Tag 'Tag1' ID: 123
→ Tag 'Tag2' ID: 124
Gesamt Tag-IDs: [123, 124]
Veröffentlichungsdatum: 2025-09-02T00:00:00
Erstelle Beitrag mit Daten:
- Status: publish
- Tags: [123, 124]
- Datum: 2025-09-02T00:00:00
- Datum GMT: 2025-09-02T00:00:00
✅ Beitrag 'Titel' erstellt (ID: 456, Status: publish)
WordPress-Tags: [123, 124]
WordPress-Datum: 2025-09-02T00:00:00
Version 0.2.0 (2025-10-01)
Bugfixes
1. Tag-Duplikatsfehler behoben
Problem: Beim Erstellen bereits existierender Tags kam es zu 400 Bad Request Fehlern.
Lösung:
- Bessere Fehlerbehandlung in
get_or_create_tag()undget_or_create_category() - Bei 400-Fehler wird automatisch erneut nach dem Tag/Kategorie gesucht
- Ausführlichere Fehlermeldungen mit Response-Details
2. Post-Duplikatsprüfung verbessert
Problem: Beiträge mit gleichem Titel wurden trotz Duplikatsprüfung doppelt angelegt.
Lösung:
check_post_exists()sucht jetzt in allen Status (draft, publish, etc.)- Case-insensitive Vergleich der Titel
- Prüft sowohl
renderedals auchrawTitel - Erhöhte Suchanzahl von 10 auf 100 Posts
- Debug-Ausgabe bei gefundenen Duplikaten
3. Veröffentlichungsdatum wird gesetzt
Problem: Das datePublished aus dem Frontmatter wurde nicht an WordPress übergeben.
Lösung:
- Datumsextraktion aus verschiedenen Frontmatter-Feldern:
datedatePublished#commonMetadata.datePublished#staticSiteGenerator.datePublished
- Automatische Formatierung:
YYYY-MM-DD→YYYY-MM-DDT00:00:00 - Datum wird als
date-Feld an WordPress-API übergeben
Neue Features
- USAGE_MODES.md: Übersichtsdokumentation der drei Verwendungsmodi
Version 0.1.0 (2025-10-01)
Features
- Automatische Metadaten-Extraktion aus YAML-Frontmatter
- Drei Verwendungsmodi:
- Einzelne URL
- YAML-Batch
- Forgejo-Repository
- WordPress REST-API Integration
- Duplikatsprüfung für Posts und Medien
- Schema.org-Support
- Markdown zu HTML Konvertierung
- Automatische Tag/Kategorie-Erstellung
Bekannte Probleme
Keine.
Geplante Features
Geplante Features
Hoch-Priorität
- Autor-Mapping: WordPress-User aus Frontmatter-Autor automatisch zuordnen oder manuelles Mapping
- Robuste Forgejo-API: Bessere Fehlerbehandlung, Progress-Tracking für Batch-Imports
Mittel-Priorität
- GitHub-Repository Support (zusätzlich zu Forgejo)
- Batch-Update (bestehende Posts aktualisieren statt nur überspringen)
- Featured Image aus Markdown-Content extrahieren (erstes Bild falls kein Frontmatter-Image)
Niedrig-Priorität
- Custom Post Types Support
- Zeitzone-Unterstützung für Veröffentlichungsdatum
- Mehrsprachige Beiträge (WPML/Polylang Support)
- Dry-Run-Modus (zeigt was passieren würde ohne zu erstellen)