Wordpress搬迁至Hexo


title: Wordpress搬迁至Hexo
date: 2020-07-08 20:43:34
tags:

  • 技术随笔

前段时间KosWu跟我聊了有关把博客搬迁至github的事情,当时看了一下相关的东西,但搁置了,今天花了一下午完成了搬迁的工作,写一篇文章记录一下搬迁过程。
本文中操作环境为win10。

1. 准备工作

在开始搭建hexo前,我们需要做一些准备工作。首先我们得创建好博客的Repositories,然后装好node.js,git这两个软件。

1.1 在Github上创建博客仓库

这部分参考了知乎上的一篇文章。
https://zhuanlan.zhihu.com/p/28321740
不涉及什么技术性的东西,按照文章中所说一步一步完成即可。
需要注意的是仓库名称一定得是用户名.github.io ,否则后面会出错

1.2. 安装环境

安装git,node.js。其中node.js为hexo所依赖的,git为我们部署hexo并push到博客仓库中所需要用到的工具。下文中的代码除特别提及外,均为在git bash中输入的代码。

2 配置SSH key

从本地向github提交代码需要身份认证,简单的用户名密码验证不够安全,建议使用SSH key来解决本地和服务器的连接问题。

2.1 检查本地SSH密钥

cd ~/. ssh #检查本机已存在的ssh密钥

如果提示:No such file or directory 说明你是第一次使用git。
我这里是照着上面参考的博客来做的,但这行代码在我本地提示bash: cd: too many arguments,未能返回结果。只是这对下面的工作不构成影响。

2.2 生成新密钥并提交至github

ssh-keygen -t rsa -C "邮件地址"

然后会出现一些提示信息,一共三条,可以直接回车跳过,之后就会显示正在生成密钥。生成的文件在用户目录下,路径为用户文件夹.ssh\id_rsa.pub,.ssh为隐藏文件夹,须在文件资源管理器中启用显示隐藏的项目选项。我们通过文本编辑器打开这个密钥文件,复制其中的内容,随后打开github主页,在个人设置-SSH and GPG keys -> New SSH key,将复制的内容粘贴到key中,标题随便写,保存。

2.3 检查是否配置成功

ssh -T [email protected] # 注意邮箱地址不用改

如果提示Are you sure you want to continue connecting (yes/no)?,输入yes,然后会看到:

Hi liuxianan! You've successfully authenticated, but GitHub does not provide shell access.

看到这个信息说明SSH已配置成功。

然后需要配置:

git config --global user.name "liuxianan"// 你的github用户名,非昵称
git config --global user.email  "[email protected]"// 填写你的github注册邮箱

这两个配置是干嘛的我也不知道,反正没什么坏处。

3 部署本地hexo

3.1 安装hexo

npm install -g hexo

3.2 部署hexo

在电脑上新建一个文件夹作为hexo的工作目录,存放有关博客的代码与相关文件,我放在了用户路径下的文档中。

cd /Documents/hexo
hexo init

当前目录就将作为hexo的工作根目录。
hexo会往这个文件夹中部署一些文件。

3.3 生成静态文件,执行本地预览

hexo g

生成静态文件,执行后hexo会在public文件夹中生成html文件。

hexo s

开启本地预览服务,打开浏览器访问 http://localhost:4000 即可看到内容,很多人会碰到浏览器一直在转圈但是就是加载不出来的问题,一般情况下是因为端口占用的缘故,因为4000这个端口太常见了,解决端口冲突问题请参考这篇文章:http://blog.liuxianan.com/windows-port-bind.html
在调试本地博客内容时,可以通过这条指令反复查看预览效果,需要注意的是每次预览前都需要先执行hexo g来重新生成文件。
加载出来后我们就可以看到博客现在的预览了,是默认主题,我们可以稍后更换。

4. 更换博客主题

在进行wordpress内容搬迁前,我们可以先更换自己想要的主题。hexo官方给了一些博客主题:
https://hexo.io/themes/
点击图片可以查看使用该主题生成的网页,点击图片下方蓝色的文字可以进入相对应的github仓库页面,一般在README.md中作者会给出下载方法,与hexo相关插件依赖,及需要对hexo根目录配置文件做出的改动。
我使用的主题为hexo-theme-yilia,首先我们在hexo工作根目录下下载这个主题:

git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia

下载后的主题保存在hexo根目录/themes中。下面我们要对hexo根目录配置文件作出改动,以指定使用的主题。
在hexo根目录下找到_config.yml,将其中的theme: landscape替换成theme: yilia,这样就能指定使用的主题为yilia了。
对主题我们可以进行一定的自定义改动,有些主题的作者在README.md里就有所提及,我们可以在themes/yilia中找到_config.yml文件,然后用记事本打开,对其中的内容做出我们想要的修改。
需要注意的是这里的_config.yml与根目录下的不同,这里的用来配置主题相关属性,而根目录下的用来配置博客标题、使用的主题、git相关信息与其他属性等。
这里我还有一点要说的,yilia的作者保留了一份博客备份,地址为:https://github.com/litten/BlogBackup
我根据他对默认配置文件的修改,对我本地的主题配置文件做出了想要的改动,这里要特别注意每个属性值的冒号后面都必须跟一个空格,再接对应值。
另外,如果在修改过程中出现了无论怎样都无法生成静态文件的情况,可以用hexo clean清理一下本地文件,然后再重新生成。

5. 将WordPress文件迁移至Hexo

5.1 准备工作

我们首先需要下载一个hexo插件,以完成迁移工作

npm install hexo-migrator-wordpress --save

然后我们需要将WordPress中的文章导出出来,这里我们可以借助WP仪表盘中的功能完成这一工作。
在 WordPress 仪表盘中导出数据(“Tools” → “Export” → “WordPress”),可参考WP支持页面:
https://wordpress.com/support/export/
选择自己想导出的内容即可。

5.2 进行迁移

插件安装完成后,执行下列命令来迁移所有文章。source 可以是 WordPress 导出的文件路径或网址。

hexo migrate wordpress 

我这里直接将导出的内容放到了hexo工作根目录,所以直接将替换成文件名即可。
随后hexo工作根目录\source_posts中便会出现提取出的文章,包含原格式信息。
迁移后,再执行hexo g生成时可能会报错,我的本地对一篇文章的.md文件报错,没能找到原因,可能是由于代码中的转义符导致的错误,我删除了这篇文章,之后完成了静态生成。这里如果报错的话建议尝试只保留文章相关的md文件,删除其他页面、图片、媒体等的md文件。

6. 提交到github

提交到github前需要我们完成三项工作,第一项是完成本地与github的连接,即前文提到的SSH配置;第二项是完成_config.yml中有关deploy的部分。如果你前面打开过这个文件,应该已经发现了deploy似乎没写完,下面是需要我们来补充的:

deploy:
  type: git
  repository: [email protected]:GitHub用户名/用户名.github.io.git
  branch: master

第三项是安装push相关的插件:

npm install hexo-deployer-git --save

完成这三项工作后,我们就可以执行hexo d命令来提交更改了。

7. 参考

https://www.cnblogs.com/liuxianan/p/build-blog-website-by-hexo-github.html#ssh-key
https://segmentfault.com/a/1190000005624504

你可能感兴趣的:(网站相关,git)