Repository navigation
Releases: HackersHostel/WP2Astro
Release list
WP2Astro v0.3.0
-
Fixed: an AI layout that left an HTML element unclosed, or started with an empty
---block, passed the checks
and then brokenpm run build. Element tags are now counted (a mismatch is sent back to the model for its retry),
an empty leading block is merged into the frontmatter, and cached layouts are checked again before reuse. -
Docs: Ollama's context size and timeouts for running a local model without a GPU.
-
New dashboard. The first visit opens a three-step setup (Choose AI, Connect GitHub, Convert); after
that the screen has Overview, Activity and Settings tabs. Overview shows the sync status with Sync
now, numbers from the last run, recent activity, connections and the Claude Code commands. Runs show each step
live, with a Stop button. GitHub, OpenAI, Claude and OpenRouter logos throughout; no web fonts are loaded. -
Claude plan is now a choice under AI model: it converts with the default layout, turns on the agent kit
and shows the commands to finish the site in Claude Code. -
Settings → Plugin data: Clear data removes the AI cache, run history and stored zips; Run the setup
again brings back the setup. -
Settings → Media (#17): copy media into the repo (default, now capped at 25 MB per file), store it with Git
LFS, leave it on WordPress, or upload it to Amazon S3, an S3-compatible service, Cloudflare R2 or Bunny Storage with
a Test storage button. Files over the limit keep their WordPress address and are listed in the report. Blob
uploads use far less PHP memory. New filterwpta_max_media_bytes. -
Archives (#19): category, tag and custom post type archives are paginated like the blog, and year, month and author
archives are generated at their WordPress URLs and listed in the sitemap. Entries gainauthorSlugin frontmatter,
and bylines link to the author archive. -
Theme JavaScript (#20): scripts the theme loads on the homepage (and jQuery, when it does) are copied and loaded on
every page, so menu toggles keep working. AI layouts may load them; the default layout gets a small-screen menu
toggle of its own when the theme has none. -
Custom fields (#22): an opt-in switch under What to build writes public post meta and ACF fields to a
fields:frontmatter key, with sorted keys. New filterwpta_entry_fields. -
Netlify (#21):
netlify.tomlwith the build settings and 301s for?p=,?page_id=and?s=links, kept out of
public/_redirectsbecause Cloudflare Pages reads that file too. -
Large sites (#14, #15, #16): auto-sync renders only posts that changed (
wp wp2astro convert --cacheddoes the same);
files are hashed as they are written instead of all at once; the zip is built in steps;?p=links are collected
while converting; commits send GitHub only changed and removed paths on top of the current tree. -
Fixed (#10): permalinks ending in
.htmlkept a trailing slash and changed URL. They are now files indist/, with
matching canonical links and sitemap entries. -
Fixed (#11): text that looks like Markdown (
[note](sic),__init__,©, a line of---or===) changed
meaning after conversion. It is now escaped. -
Fixed (#12): two runs started at the same moment could both run. The run lock is now taken atomically, a run that
loses its lock stops, and a job is only stepped by one request at a time. -
Fixed: with auto-sync or
--cached, renaming a parent page left its child pages at their old URLs. A post is now
rendered again when its permalink changes. -
Fixed: on permalink structures without a trailing slash (
/%postname%), month archives weren't found at their
WordPress URLs and archive pagination could build URLs like/2024/01page/2/. Archive pages now always end in a
slash, like every other generated page. -
Fixed: the default layout's small-screen menu toggle didn't open when the theme loaded a script that didn't handle
the menu. It now opens the menu unless the theme's own script already did on that click. -
Media uploads to storage time out in proportion to the file's size (about 2 seconds per MB, 20 seconds to 2 minutes),
so an endpoint that doesn't answer fails quickly, and the media step stops on time even when uploads fail. -
CI (#23, #24): builds a fixture Astro site with every URL case and checks
dist/andnpm start, and converts a
real WordPress site against the mocks (AI, GitHub with LFS, S3 storage) with a visual comparison of the result. -
New logo: the WA mark, in teal (teal-dark on dark backgrounds), in the dashboard, the admin menu, the plugin icons
and the banner. -
Local model provider: run open models such as Gemma, Llama or Qwen on your own server (Ollama, LM Studio,
llama.cpp, vLLM) through any OpenAI-compatible Server URL. -
OpenRouter's default model is now the open
google/gemma-4-31b-it(wasanthropic/claude-haiku-5.5). -
Fixed: posts, pages and terms with non-ASCII slugs (
café,日本) brokenpm run build. Their paths are now
decoded, andnpm startno longer crashes when it redirects to such a path. -
Fixed: shortcodes that print output instead of returning it no longer break the conversion step.
-
A sync now stops, without changing anything, when GitHub returns only part of a large repository's file list,
instead of risking deleting files. -
AI cache entries unused for 30 days are removed.
-
Settings are read and decrypted once per request.
-
Docs: Run a local model, Choose where media goes, and deploying to
Render. The README,readme.txt, Getting started, Sync and Troubleshooting pages cover the media options, the new
archives, theme scripts and Custom fields (#29). -
Help tabs on the WP2Astro screen (Overview, AI model, GitHub, Media, Sync, Troubleshooting) and a Help sidebar with
links to the documentation, Q&A, issues and the changelog. Field descriptions link to the matching guide. -
readme.txtin WordPress.org format, and plugin directory icons and banners in.wordpress-org/. View details
on the Plugins screen now shows the readme's description, installation steps and FAQ. -
Documentation rewritten as task-based guides for site owners, with developer pages for hooks, WP-CLI, white-label,
the GitHub OAuth app and releasing. Every filter has a docblock with@since. -
bin/build-zip.sh --wporgbuilds the WordPress.org version, without the GitHub updater and theUpdate URIheader. -
New
WP2ASTRO_BRAND_FORUMconstant andforumbrand key for the Help sidebar's "Ask a question" link.
WP2Astro v0.2.0
First Hackers Hostel release, renamed from "WP to Astro" to WP2Astro.
- New dashboard under its own WP2Astro menu: connect a model and GitHub, convert, sync, recent runs.
- AI providers, kept lightweight: your ChatGPT plan (Sign in with ChatGPT) or OpenRouter (one-click connect, credit
balance, Buy credits; Claude, GPT and free models), or no AI. Claude subscriptions work through the agent kit in
Claude Code. Load models and Test buttons. Local model servers (Ollama) are no longer offered. - GitHub: one-click connect with the device flow (when the OAuth app's client ID is set), token checked on save.
- Smart sync: only changed files are uploaded and committed, removed entries are removed, files edited in the repo are
kept, no commit when nothing changed. Optional auto-sync after publishing. Run history in the dashboard and CLI. - AI results are cached, so syncs don't spend credits again on an unchanged theme or post.
- SEO: titles, descriptions, noindex and canonical from Yoast SEO, Rank Math or All in One SEO; canonical, Open Graph
and Twitter tags on every page. - RSS feed, sitemap and robots.txt; old
/feed/,/wp-sitemap.xml, changed slugs,?p=,?page_id=and?s=URLs
redirect (npm start,public/_redirects, and static redirect pages). - Public custom post types with their archives.
- Static search with Pagefind.
- Agent kit in the generated repo:
AGENTS.md,CLAUDE.mdand Claude Code skills to polish the layout, fix
shortcodes and verify the build. - WP-CLI:
wp wp2astro convertandwp wp2astro status. - API keys and tokens are encrypted at rest.
- Updates from GitHub releases; white-label constants and filters.
- Loopback request to the homepage now verifies SSL like core does.