将博客从wordpress迁移到hexo并托管到github
从wordpress导出文件
打开wordpress进入后台管理导出所有内容
得到一个xml文件,此文件即为wordpress的备份。
安装Hexo
环境要求
- nodejs
- git
使用npm安装hexo
1 | npm install -g hexo-cli |
建站及配置
新建博客项目
1 | hexo init 项目名 |
参考https://hexo.io/zh-cn/docs/configuration配置网站信息
常用指令
新建博文
1 | hexo new [layout] <title> |
生成静态文件
1 | hexo g |
启动服务器
1 | hexo server |
迁移wordpress备份到hexo
安装hexo-migrator-wordpress
插件。
1 | npm install hexo-migrator-wordpress --save |
安装完成后,执行命令来迁移所有文章,source选择导出的wordpress备份文件
1 | hexo migrate wordpress <source> |
迁移完成运行hexo g
可能会报错,这是因为hexo无法完美的迁移wordpress,某些文章需要手动修改一下
如果报错可以定向到某个文件,可以前往source/_posts
目录定位错误的.md
文件
若报错未知path,那只能一个文件一个文件地打开找
建议所有文章都打开检查一下,因为很多文章,特别是涉及到代码块的文章迁移效果都不太好
- 在markdown文件中添加
<!-- more -->
来使首页显示文章概览而不是全文- 在markdown顶部注释添加
toc: true
来使文章显示目录
部署至github
此处默认你会使用github
新建respository,项目名命名为你的用户名.girthub.io
安装git自动部署插件
1 | npm install hexo-deployer-git --save |
修改配置
1 | deploy: |
以上配置均不带括号
branch默认为gh-page
清除静态文件并部署至github
1 | hexo clean |
以后部署就无需清除了
避免每次更新输入账号密码
选择ssh连接github,即git@github.com:xxxxxxxxxxxxxx
更换主题
主题列表
推荐主题
- hexo-theme-icarus(在用)
- hexo-theme-next(Star最多)
使用方法(以icarus为例)
安装
1 | npm install hexo-theme-icarus |
运行
1 | hexo server |
可能会报错,报什么错就按照上面的错误提示执行,自行解决
配置
各主题的配置方法不同,请按照对应的教程进行配置
本主题可参考Icarus用户指南 - 主题配置
更换为自己的域名
域名解析
前往自己域名所在管理平台,添加一条解析记录
- 记录类型:CNAME
- 记录值:你的github名.github.io
配置_config文件
打开hexo目录下的_config.yml文件,找到URL,将其指向域名地址
我的是https://www.huhuapin.cn
修改CNAME文件
打开hexo/source
目录下的CNAME
文件(没有请新建,无后缀)
在其中填写域名地址
图片迁移至七牛云
七牛云注册实名认证后会送10GB的对象存储空间
导出图片
登录服务器,wordpress目录下wp-content,复制uploads文件夹到本地。
在七牛云新建存储空间
- 存储空间名称:不可重复
- 存储区域:随便选
- 访问控制:公开
绑定自己的域名(可选)
自定义CDN加速域名下绑定域名
- 加速域名:填写你自己的域名,我的是static.huhuapin.cn
- 缓存配置:使用推荐配置
创建
之后会给一个cname值。
添加域名解析(接上条可选)
需要在你购买域名的平台,添加一条CNAME解析记录,值即为上文的cnme值
绑定SSL证书(接上条可选)
可以在七牛云申请,也可以在域名管理平台申请。我这里选择的后者
先进入到SSL证书,申请免费证书。
绑定域名填写自己分配到七牛云的域名,我的是static.huhuapin.cn
找到我的证书,下载
回到七牛云,打开对象存储→空间管理→域名→详情→找到HTTPS并修改。
选择本地证书
- 内容:复制下载下来的pem文件内容全部粘贴进去
- 密钥:复制.key文件内容全部粘贴进去
确定上传并确认。
图片上传至七牛云
1.根据自身环境下载对应的图形化工具kodo Browser客户端并解压
https://developer.qiniu.com/kodo/5972/kodo-browser
2.打开软件,通过七牛控制台个人中心获取 AK/SK
3.拖动备份的图片文件夹至目录下,上传任务就会自动添加了。
批量修改hexo图片链接
参考博文https://blog.csdn.net/qq_40832960/article/details/115353014
自用代码,需要修改第34行代码
1 | import mimetypes |
定制修改
icarus4.0之后主题都放在了node_modules,要想修改自己的网站只能去修改node_modules里的文件,虽然这不是一个好办法,但先凑合着用吧
添加备案号
打开hexo/node_modules/hexo-theme-icarus/layout/common/footer.jsx
43行左右
1 | {showVisitorCounter ? <br /> : null} |
将其改成你的备案号
更换cdn
_config.icarus.yml
:
1 | providers: |
其他常见问题
公式渲染问题:
如何在HEXO中渲染Latex数学公式(注意安装markdown-it-katex
)
公式推荐使用mathpix,可以截图识别。mathtype公式不能很好的匹配。
图片自动上传至七牛云:
-
Typora自动上传图片配置,集成PicGo-Core,文件以时间戳命名(给文件添加后缀前缀)
-
参考配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20{
"picBed": {
"uploader": "qiniu", // 代表当前的默认上传图床为 SM.MS,
"qiniu": {
"accessKey": "xxx",
"secretKey": "xxx",
"bucket": "huhuapin-cn", // 存储空间名
"url": "https://static.huhuapin.cn", // 自定义域名
"area": "z1", // 存储区域编号,我的是华北
"options": "", // 网址后缀,比如?imgslim
"path": "uploads/" // 自定义存储路径,比如 img/
}
},
"picgoPlugins": {
"picgo-plugin-super-prefix": true
}, // 为插件预留
"picgo-plugin-super-prefix": {
"prefixFormat": "YYYY/MM/"
} //super-prefix插件配置
}