用途:把 WordPress 站迁移为 Hugo + Markdown + git 静态站,部署到 GitHub Pages。输入为 WordPress 后台导出的 WXR .xml 和 wp-content/uploads/ 文件夹,全程离线、无第三方依赖。产出 content/*.md、static/wp-content/uploads/ 与手写极简主题,经 Hugo 构建、GitHub Actions 发布,全站 URL 保持 /archives/<数字>/ 不变。
主要能力:WXR 作为唯一真相源,uploads/ 直接作为静态资源,图片不改名,正文图片 URL 改为根相对 /wp-content/uploads/...;文章 URL 从 <link> 原样保留。转换器为纯函数并带单元测试。已处理超链接 href 丢失、相册多余列表符、CJK permalink 编码、图片外链、视频/iframe 透传、lastmod 回退、实体解码、发新文跳号等问题。
使用方式:建工程并拷入 WXR 与 uploads;拷入 skill 的 scripts、tests、layouts、hugo.toml、workflow 与 gitignore;先运行 python3 tests/test_wxr.py,再运行 python3 scripts/wxr_to_hugo.py <site>.WordPress.*.xml;用 hugo --gc --minify 构建,python3 scripts/verify_build.py 校验老链接;hugo server -p 1313 本地核对;推 GitHub 后开启 Pages 的 Actions 构建,再切换 DNS。
适用场景:有 WXR 与 uploads、需去掉动态/评论/数据库、要求保留老链接的 WordPress 迁移。
限制:无 WXR 需先在 WP 后台导出;无法保留评论、会员、搜索等动态功能;站点极小则手抄更快。密码保护文章与脚手架页必须询问用户后处理,不可擅自发布。WXR 与原始 uploads 含敏感数据,不得提交到公开仓库。