wp2hugo:WordPress 到 Hugo 的迁移利器,301 Star
文章目录
- wp2hugo:WordPress 到 Hugo 的迁移利器,301 Star
wp2hugo:WordPress 到 Hugo 的迁移利器,301 Star
wp2hugo 是一个用 Go 编写的 WordPress 到 Hugo 静态站迁移工具。作者 ashishb 在迁移个人博客时遇到了各种边角情况,于是写了这个工具。目前项目在 GitHub 上获得了 301 个 Star。
什么是 wp2hugo
wp2hugo 把 WordPress 的 XML 导出文件转换成 Hugo 站点的 Markdown 文件。虽然是针对 Hugo 设计的,但生成的 Markdown 文件也可以在 Mkdocs、Jekyll 等其他静态站点生成器上使用。
它编译成单个可执行文件,不需要安装任何依赖就能运行。相比那些跑在服务器上的 PHP 迁移插件,wp2hugo 在性能上有明显优势。大博客几分钟就能处理完,而 WordPress 插件可能会超时、内存溢出甚至全面失败。
能迁移什么
这个工具覆盖了迁移过程中可能遇到的方方面面:
- 文章和页面:支持层级页面结构,使用 Hugo 的 page bundles
- 分类系统:标签、分类法、自定义分类法全部保留
- 评论:旧评论自动迁移,需要手动在 Hugo 主题中插入代码片段
- URL 和永久链接:所有链接包括媒体链接都做正确映射,还能生成 Nginx 重定向配置
- RSS 源:保留原有的 UUID,订阅者不会看到重复条目
- 草稿状态:草稿和待审核文章保留其发布状态
短代码和内容处理
WordPress 的特色之一是一大堆短代码和 Gutenberg 块。wp2hugo 对这部分做了针对性处理:
- WordPress 原生的 caption、audio、gallery 短代码都转成 Hugo 对应的格式
- 表格目录块、代码块(保留语言分类信息)、文章摘要、more 分隔符
- YouTube 嵌入(包括纯文本版和 WP YouTube Lyte 插件版)
- Google 地图嵌入、GitHub gist 嵌入
- iframe 嵌入
- Gutenberg 块中的脚注、YouTube、图片和画廊
媒体文件处理
- 下载嵌入文章中的图片,保持相对路径
- 处理外部域名上的图片
- 可选导入 WordPress 媒体库中的所有附件
- 自定义附件标题导入到
/data/library.yaml
安装和使用
有两种方式获取 wp2hugo。
下载编译好的二进制文件是最快的方式,从 GitHub Releases 页面下载对应系统的版本即可。
如果需要从源码构建:
git clone git@github.com:ashishb/wp2hugo.git cd wp2hugo/src/wp2hugo make build_prod ./bin/wp2hugo --source wordpress-export.xml --download-media使用方式也很直接,从 WordPress 后台导出 XML 文件,然后运行一行命令:
wp2hugo --source wordpress-export.xml --download-mediawp2hugo 附带了一个叫 hugomanager 的实验性工具,功能包括 URL 自动生成、站点状态概览、图片压缩、backlink 分析等。
实际案例
项目 README 中列出了 20 多个成功迁移的站点,包括个人博客、技术站、中文和西班牙语博客。
商业使用
项目对个人和非商业用途完全免费。商业使用需要单独授权。
总的来看,wp2hugo 是一个针对性很强的工具,解决的是 WordPress 老用户迁移到 Hugo 过程中那些琐碎而头疼的问题。如果你正在考虑从 WordPress 搬家到 Hugo,这个工具值得一试。
是 WordPress 老用户迁移到 Hugo 过程中那些琐碎而头疼的问题。如果你正在考虑从 WordPress 搬家到 Hugo,这个工具值得一试。