mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-11-05 19:47:03 +09:00
Completes #38: the WordPress frontend now belongs to the extension too, not just the backend. The tab-group constraint (contributed routes are flat — there's no way to contribute a shared TabGroupLayout parent inside the dashboard) is solved by contributing a SINGLE splat route `wordpress/*` whose component (WordPressExtension) self-renders the whole WordPress sub-router — reproducing the exact structure core App.jsx used to own: - TabGroupLayout + WORDPRESS_TABS over the 3 list pages (sites / plugin library / pipelines), - full-bleed site + pipeline detail routes as siblings, - the legacy /wordpress/projects → /wordpress/pipelines deprecation redirects. The 5 page components stay in core pages/ and are re-used (Pattern A, same as serverkit-git/email/workflows); only the routing + nav/palette/title ownership moves into the manifest. - builtin-extensions/serverkit-wordpress/frontend/index.jsx (source) → synced to frontend/src/plugins/serverkit-wordpress/ (pre-bundled, D5) via scripts/sync-builtin-frontends.mjs (drift check green). - plugin.json contributions: nav (WordPress), routes ([{path:"wordpress/*", component:"WordPressExtension"}]), page_titles, command_palette. - Core App.jsx: removed the WordPress imports, the TabGroupLayout WORDPRESS_TABS route block, the detail routes, LegacyWpPipelineRedirect, and the now-unused ModuleRoute + WORDPRESS_TABS imports (kept the dynamic /wordpress/ title fallbacks). Removed the sidebar nav item and the two command-palette entries. WordPress now disappears cleanly (nav+routes+API) when the extension is uninstalled. Verified: npm run lint (0 errors) + npm run build clean; the screenshots skill renders /wordpress/42 correctly (visually confirmed — full detail page, Overview tab, sidebar item active); backend flagship still seeds/loads (has_frontend now true) with tests green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
57 lines
2.5 KiB
JSON
57 lines
2.5 KiB
JSON
{
|
|
"name": "serverkit-wordpress",
|
|
"display_name": "WordPress",
|
|
"version": "1.0.0",
|
|
"description": "The full WordPress suite — site provisioning, plugin library, environments/pipelines, updates, security hardening, vulnerability scanning, analytics and reports. Ships bundled and installed by default (a flagship), and can be uninstalled to slim the core.",
|
|
"author": "ServerKit",
|
|
"license": "MIT",
|
|
"category": "integration",
|
|
"homepage": "https://github.com/jhd3197/ServerKit",
|
|
"permissions": ["shell", "filesystem", "network", "docker", "database"],
|
|
"min_panel_version": "1.7.0",
|
|
"entry_point": "wordpress:wordpress_bp",
|
|
"url_prefix": "/api/v1/wordpress",
|
|
"extra_blueprints": [
|
|
{
|
|
"module": "wordpress_sites",
|
|
"attr": "wordpress_sites_bp",
|
|
"url_prefix": "/api/v1/wordpress"
|
|
},
|
|
{
|
|
"module": "environment_pipeline",
|
|
"attr": "environment_pipeline_bp",
|
|
"url_prefix": "/api/v1/wordpress/projects"
|
|
},
|
|
{
|
|
"module": "environment_pipeline",
|
|
"attr": "environment_pipeline_bp",
|
|
"url_prefix": "/api/v1/wordpress/pipelines",
|
|
"name": "environment_pipeline_pipelines"
|
|
}
|
|
],
|
|
"icon": "<path d=\"M12 2a10 10 0 100 20 10 10 0 000-20zm-8 10a8 8 0 011.4-4.5l4.7 12.9A8 8 0 014 12zm8 8c-.8 0-1.6-.1-2.3-.3l2.4-7 2.5 6.8.1.1A8 8 0 0112 20zm1.1-11.8c.5 0 .9-.1.9-.1.4 0 .4-.6-.1-.6 0 0-1.4.1-2.3.1-.8 0-2.2-.1-2.2-.1-.5 0-.6.6-.1.6 0 0 .4.1.9.1l1.3 3.6-1.9 5.6L6.6 8.2c.5 0 .9-.1.9-.1.4 0 .4-.6-.1-.6 0 0-1.4.1-2.3.1h-.4A8 8 0 0112 4a8 8 0 016.5 3.3h-.3c-.8 0-1.4.7-1.4 1.5 0 .7.4 1.3.8 2 .3.6.7 1.3.7 2.3 0 .7-.3 1.6-.6 2.7l-.8 2.7-2.9-8.8z\"/>",
|
|
"contributions": {
|
|
"nav": [
|
|
{
|
|
"id": "wordpress",
|
|
"label": "WordPress",
|
|
"route": "/wordpress",
|
|
"category": "infrastructure",
|
|
"icon": "<circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"/><path d=\"M3.5 9h17M3.5 15h17\"/>"
|
|
}
|
|
],
|
|
"routes": [
|
|
{ "path": "wordpress/*", "component": "WordPressExtension" }
|
|
],
|
|
"page_titles": {
|
|
"/wordpress": "WordPress Sites",
|
|
"/wordpress/plugins/library": "WordPress Plugin Library",
|
|
"/wordpress/pipelines": "WordPress Pipelines"
|
|
},
|
|
"command_palette": [
|
|
{ "label": "WordPress", "path": "/wordpress", "category": "Pages", "keywords": "wp sites" },
|
|
{ "label": "WordPress Pipelines", "path": "/wordpress/pipelines", "category": "Pages", "keywords": "wp environments projects pipeline" }
|
|
]
|
|
}
|
|
}
|