
从 WordPress 到 Hexo
之前是一直有在用
WordPress
,建站、可视化编辑还有网站访问量包括对一些IP的记录对于博客管理来说很方便,但是前些时间因为 WordPress 和 一些插件总是一直在提示更新,更新之后又会莫名的失败导致网站短时间内崩溃,于是就有准备将博客迁移到 Hexo 来。
媒体资源迁移
Hexo的博客还是使用图床要来的更舒服一些,基本步骤,就是将 WordPress 的媒体资源全部按照原定目录结构上传到图床中,我这边使用的是 七牛云 实名认证之后 10G 的免费存储空间还是挺香的。
WordPress 的媒体资源默认是在 blog/wp-content/uploads
文件夹中 按照 Year/Mouth
组织的,相应的文件寻找路径记录在了数据表 wp-posts
中
上传图床
我才用了比较蠢的方法,将整个 uploads 文件夹 down下来,然后按照目录上传,上传时只需要设置好每个文件夹的路径前缀就好
修改数据库路径
1 | update wp_posts set post_content = replace(post_content, 'http://www.exm.com/wp-content/uploads/', 'http://img.exm.com/'); |
可使用该 SQL语句 将当前的网络图片链接替换成已经上传到图床中的图片链接。
文章迁移
WordPress 提供了文章导出的功能,可以将选定的文章信息导出到 xml
1 | npm install hexo-migrator-wordpress --save |
可以使用这个 package 进行xml数据转换成 hexo - md 命令如下
1 | hexo migrate wordpress WordPress.yyyy-mm-dd.xml |
部分修改
使用 hexo migrate wordpress
进行数据迁移时,发现了该插件对于 <pre> </pre>
标签的支持很差,并且会 将原文章中的 \n
给转义成 空格。
<pre>
修改blog/node_modules/hexo-migrator-wordpress/migrator.js
添加如下代码
1 | tomd.addRule('code_block', { |
大概是在这个位置:
保留 \n
在 blog/node_modules/turndown/lib/turndown.cjs.js
修改一行代码
1 | var text = node.data.replace(/[ \r\n\t]+/g, ' '); |
参考该 issues
重写 escape
函数
在 blog/node_modules/turndown/lib/turndown.cjs.js
1 | escape: function (string) { |
至此,只需要将 wordpress-yyyy-mm-dd.xml
放到博客的根目录,运行迁移命令即可。
- Post title:从Wordpress到Hexo
- Post author:Varsion
- Create time:2021-01-25 10:41:26
- Post link:https://blog.varsion.cn/post/388198b9.html
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.