Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/lankahack/pagemeister/archive/refs/heads/main.zipPageMeister ist das Grundgeruest fuer ein modernes WordPress-Plugin, das langfristig als visueller Page-Builder mit HTML-Import und HTML-Export ausgebaut wird.
Projektstatus
Der aktuelle Stand enthaelt die technische Foundation des Plugins:
- WordPress-Plugin-Einstiegspunkt mit Plugin-Header
- OOP-Bootstrap mit Namespace-basiertem Autoloading
- Aktivierungs-, Deaktivierungs- und Uninstall-Logik
- Admin-Menue
PageMeistermit erstem Builder-Einstiegspunkt - Capability-Schicht fuer Builder-Zugriff
- Builder-Adminseite mit App-Root (
#pagemeister-app-root) - vorbereitete Ordnerstruktur fuer Admin, Builder, Rendering, Import, Export und Tests
- saubere, screen-spezifische Einbindung der Editor-Assets
- Vite-, React- und TypeScript-Build-Setup fuer den Editor
Installation
- Den Plugin-Ordner in
wp-content/plugins/pagemeisterablegen. - Im WordPress-Admin das Plugin
PageMeisteraktivieren. - Sicherstellen, dass die Zielumgebung mindestens WordPress 6.5 und PHP 8.1 verwendet.
Entwicklung
Die Plugin-Foundation orientiert sich an einer modularen Struktur:
pagemeister.phpstartet das Plugin und registriert zentrale Hooks.includes/Coreenthaelt Bootstrap, Autoloader und Lifecycle-Klassen.includes/Administ fuer spaetere Admin- und Editor-Integration vorgesehen.src/editorenthaelt die React-TypeScript-Quellen fuer den Builder.src/editor/components,src/editor/storesundsrc/editor/utilstrennen UI, Status und Hilfsfunktionen.build/editorist das Ziel fuer gebaute Assets aus Vite.
Frontend-Build
Verfuegbare Skripte:
npm installinstalliert alle Frontend-Abhaengigkeiten.npm run devstartet den Vite-Dev-Server fuer die Editor-Entwicklung.npm run buildschreibt das Produktionsbundle nachbuild/editor.npm run previewstartet eine lokale Vorschau des Vite-Bundles.npm run lintprueft das Frontend inklusive Tests per ESLint.npm run typecheckprueft die TypeScript-Typen.npm run test:unitfuehrt Frontend-Unit-Tests mit Vitest aus.npm run test:e2estartet die Playwright-Grundlage fuer Builder-Flows.npm run checkkombiniert Typecheck und Produktionsbuild.
Custom Widget SDK
PageMeister enthaelt jetzt eine erste SDK-Grundlage fuer externe Widgets.
- Die Runtime-API wird im Builder unter
window.PageMeisterWidgetSDKbereitgestellt. - Widgets koennen zur Laufzeit registriert werden und erscheinen danach in Bibliothek, Properties und Command-System.
- Freie Kategorien werden unterstuetzt; die linke Sidebar gruppiert registrierte Widgets dynamisch.
- Deklarative Export-Mappings koennen direkt am Widget hinterlegt werden und werden vom PHP-HTML-Export fuer unbekannte Widget-Typen verwendet.
- Widget-spezifische Frontend-Assets koennen serverseitig ueber den Filter
pagemeister_widget_assetsangebunden werden.
Dokumentation:
Frontend Rendering und Asset-Loading
PageMeister enthaelt nun eine serverseitige Frontend-Rendering-Schicht mit klar getrennten Verantwortlichkeiten:
includes/Rendering/CssGenerator.php- generiert CSS aus globalen Design-Tokens (
:root-Variablen) und widget-spezifischen Styles pro Node - erzeugt responsive Regeln fuer Desktop/Tablet/Mobile inkl. Sichtbarkeits-Logik
- haengt optional
settings.customCssam Ende an
- generiert CSS aus globalen Design-Tokens (
includes/Rendering/WidgetAssetRegistry.php- ermittelt benoetigte Widget-Assets nur fuer verwendete Widgets
- Standard-Konvention:
assets/frontend/widgets/<widget-type>.css|js - ist ueber den Filter
pagemeister_widget_assetspro Widget erweiterbar
includes/Rendering/FrontendAssetLoader.php- Hook:
wp_enqueue_scripts - laedt nur auf singulaeren Frontend-Seiten mit gespeichertem PageMeister-Modell
- registriert generiertes CSS als Inline-Style und enqueued nur gefundene Widget-Assets
- verwendete Widgets werden aus dem
nodes-Baum ermittelt
- Hook:
Wichtige WordPress-Integrationspunkte
PageMeister\Core\Plugin::registerHooks()registriertwp_enqueue_scriptsfuer den Frontend-Loader.PageMeister\Builder\PageModelRepository::hasStoredModel()verhindert unnoetige Frontend-Arbeit auf Seiten ohne Builder-Modell.- Filter
pagemeister_frontend_widget_typeserlaubt Anpassung der erkannten Widget-Liste vor dem Enqueue.
Beispiel fuer Widget-Assets
assets/frontend/widgets/image.cssassets/frontend/widgets/button.js
Nur wenn image oder button im aktuellen Seitenmodell vorkommen, werden diese Dateien geladen.
Naechste Schritte
- JSON-Seitenmodell und REST-Endpunkte fuer Speichern und Laden definieren.
- Erste Widget-Registry mit Basis-Widgets implementieren.
- Die Builder-UI auf Topbar, Seitenleisten und Canvas ausbauen.