当前位置: 首页 > news >正文

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-media

wp2hugo 附带了一个叫 hugomanager 的实验性工具,功能包括 URL 自动生成、站点状态概览、图片压缩、backlink 分析等。

实际案例

项目 README 中列出了 20 多个成功迁移的站点,包括个人博客、技术站、中文和西班牙语博客。

商业使用

项目对个人和非商业用途完全免费。商业使用需要单独授权。

总的来看,wp2hugo 是一个针对性很强的工具,解决的是 WordPress 老用户迁移到 Hugo 过程中那些琐碎而头疼的问题。如果你正在考虑从 WordPress 搬家到 Hugo,这个工具值得一试。

是 WordPress 老用户迁移到 Hugo 过程中那些琐碎而头疼的问题。如果你正在考虑从 WordPress 搬家到 Hugo,这个工具值得一试。

http://www.jsqmd.com/news/1148280/

相关文章:

  • 百度网盘秒传脚本:3分钟掌握文件永久分享终极指南
  • 杰理之仅选择IIS 输出,通话mic 无声【篇】
  • Python 协程池设计模式:在 RAG 场景下复用 Embedding 请求的最佳实践
  • B站AI知识库插件:将收藏夹秒变智能知识库
  • 番茄小说本地化永久保存解决方案:fanqienovel-downloader全面指南
  • 【SkyWalking从入门到精通】第21篇:用SkyWalking排查慢服务——从蛛丝马迹到真相大白
  • DLSS Swapper:游戏性能优化的智能管家,一键解锁显卡全部潜能
  • 2026年AI大模型API中转站亲测报告 主流服务商性能与成本全维度硬核排名
  • 第27章:插件系统与 Plugin Daemon 协同样式
  • GLM 5.2 来袭:开源权重模型或致 AI 推理利润崩塌,成本最多降 50%!
  • ADP5350与PIC32MX675F256L在电源管理中的协同设计
  • Transformer 自注意力复杂度 O(n²d) 详解:从矩阵乘法到 PyTorch 源码逐行分析
  • 厦门大学LaTeX论文模板:学术规范自动化的架构解析与实施框架
  • 气动系统在工业应用中的风险防范
  • 云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 41-50
  • 2026 降AI率网站深度实测:亲测好用,毕业季必备宝典
  • GLM 5.2:开源模型正在杀死AI推理的暴利时代
  • 多 Agent 通信协议选型:gRPC、消息队列还是共享存储
  • DDrawCompat完整指南:让DirectX老游戏在现代Windows上焕发新生
  • PIC18F87J50开发板直流电机驱动与PID控制实战
  • Temu批量图片翻译实现方案解析
  • 多模态AI应用开发实战:从零搭建图像描述与问答系统
  • 2026商城网站建设哪家便宜,同价位下谁给的功能更多
  • 模型服务 A/B 测试:流量分桶要同时看延迟和业务指标
  • AI代理技能系统mattpocock/skills:工程化AI编程助手实践指南
  • [实战] 2026年制造业图纸数字化:图片PDF转DXF的精度控制与质量管理流程
  • 深度解析:如何用unveilr高效解密微信小程序源码的技术实践
  • 缓存层场景实战
  • GitOps 多环境管理:ApplicationSet 实现环境矩阵式自动部署
  • 【机器人技术】基础搬运离线仿真完整实操