当前位置: 首页 > 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.cnnetsun.cn/news/3224090.html

相关文章:

  • .NET 程序保护实战系列 03 · 符号混淆:名称就是第一道防线
  • 杰理之做特殊按键只响应单击事件处理【篇】
  • 存储突围+材料破卡!安徽集成电路构建全链竞争优势|半导体展会·2027合肥
  • Windows 11 LTSC企业版安装微软商店:3分钟完整终极指南
  • 彻底告别DLL缺失噩梦:VisualCppRedist AIO一站式解决方案终极指南
  • SpringBoot项目实践:如何优雅地处理全局异常
  • 工信局在推动产业链技术升级时,如何识别关键断点与卡脖子环节?
  • HarmonyOS7 ArkUI 实战:Flex Row 商品信息卡片不被长文案挤变形
  • 5分钟快速激活Windows和Office:KMS_VL_ALL_AIO智能激活指南
  • Micronaut Data:把数据库查询挪到编译期去做
  • 开源项目 Riddle 让 Remarkable 电子墨水屏平板秒变“邪恶日记”,能与你对话!
  • GCC MingGW-w64 8.1安装调试
  • 幻兽帕鲁存档编辑器:5分钟学会安全修改游戏数据的终极方案
  • btp.exe打开时闪退无法登录问题及解决方法。
  • Scikit-learn Pipeline:构建可复用的 ML 流水线
  • 直播带货,知识与销售并行
  • 457. Java 反射 - 深度访问
  • 智融交通·绿动未来 | 智能新能源车辆数字主线技术与产业论坛成功举办
  • 高压隔离技术:ISOM8710与PIC32MZ的工业应用解析
  • IQR与MAD异常值检测实战:3种数据分布场景下的Python代码与效果对比
  • 萨科微slkor2026年7月6日“每日芯闻”。国际芯闻:
  • KMS_VL_ALL_AIO:Windows系统一键激活的终极解决方案
  • 户外LED广告牌尺寸规格大全
  • NAS / 服务器断电数据丢失?UPS 配套 USB关机保护板,市电断电池低自动提示服务器/电脑关机
  • easyMarkets平台评测:工具体验与平台稳定性有哪些观察重点
  • VLM增强的语义蒙特卡洛定位:让机器人真正看懂环境
  • 人生解释器的最小单位是什么?
  • 直击零线过载隐患 中线安防保护器综合治理方案
  • 细胞系vs原代:原代牙周韧带成纤维细胞,为什么不能用细胞系代替?
  • 2026年无锡干细胞机构如何考量?解析行业布局与合规焦点