About wordpress-theme-to-emdash
wordpress-theme-to-emdash is a skill for recreating selected WordPress theme layouts and interactions as an Astro site backed by EmDash. It helps developers plan the migration from source code, live references, or supplied designs while accounting for responsive behavior, licensing, and verification.
Key features
- 01Map WordPress templates to Astro routes and components
- 02Translate content types and settings to EmDash
- 03Scope layouts and interactions to requested needs
- 04Compare rendered pages across viewports
- 05Check theme and asset licensing
Use cases
- 01Port selected pages from a WordPress theme
- 02Recreate a theme using a live demo as reference
- 03Verify responsive layouts against supplied screenshots
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ emdash-cms/ skills --skill wordpress-theme-to-emdashAfter installing, type/wordpress-theme-to-emdashin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
phases/1-discovery.md2-design.md3-templates.md4-dynamic.md5-seed.md6-verify.mdreferences/concept-mapping.mdDetails
From the project READMEPort a WordPress theme to EmDash
Recreate the theme's relevant layouts and interactions as an Astro site backed by EmDash. Preserve the user's requested visual fidelity and feature scope; do not assume every WordPress template or demo feature belongs in the port.
Load building-emdash-site for current EmDash schema, query, rendering, caching, and seed patterns. When a live reference site is available, use the agent-browser CLI for rendered comparison; run agent-browser skills get core --full for its command reference.
Choose the evidence
Use the best available sources in this order:
- theme source and
theme.json, stylesheets, templates, andfunctions.php; - a live demo at representative desktop and mobile viewports;
- screenshots or design files supplied by the user;
- explicit design decisions where the source is ambiguous.
Do not infer that demo content or images share the theme code's license. Reuse an asset only when its license or the user's rights permit it; otherwise use a clearly licensed substitute with similar dimensions and visual weight.
Plan the port
Inventory only the page types, components, responsive states, and interactions needed for the requested site. Map WordPress responsibilities before implementing:
- PHP templates become Astro routes, layouts, and components.
- Custom post types, metadata, and taxonomies become EmDash collections, fields, and taxonomies.
- Theme Customizer values become site settings or explicit project configuration.
- Menu locations become named EmDash menus queried by templates.
- Sidebars and widgets become widget areas or ordinary Astro components.
- Shortcodes and plugin-owned behavior may require a separate plugin migration.
Read WordPress theme concept mapping when translating template hierarchy, functions.php registrations, template tags, hooks, widgets, or reusable blocks.
Dynamic EmDash content routes must remain server-rendered. Use the EmDash Image component for EmDash media fields; ordinary theme assets can use Astro's asset handling.
Work in scoped phases
Read a phase file only when that phase applies:
- Discovery and reference capture
- Design extraction
- Template conversion
- Dynamic EmDash features
- Schema and seed data
- Rendered verification
When creating a standalone theme project, start from the repository's current site template or the user's existing project. Confirm the destination before writing and do not replace an existing site structure without explicit direction.
Verify the result
Build the site and exercise each in-scope page and interaction. Compare matched viewports against the reference, including responsive navigation, content with long and missing values, RTL when admin or theme behavior depends on direction, and relevant empty or error states.
Capture before-and-after or reference-and-result screenshots when visual fidelity is part of acceptance. Report deliberate deviations, missing source evidence, unsupported WordPress behavior, and asset substitutions.
Licensing and attribution
Inspect the source theme's actual license and notices. Preserve required copyright and attribution, include the applicable license text for reused code, and identify third-party assets separately. Do not label a port GPL-2.0-or-later merely because the source is a WordPress theme.