0%

hexo的迁移

为了重新开始写点东西,而且换了电脑,所以将博客进行了一次迁移,在此记录一些坑,其实真的很简单!,本质上就是拷贝!

安装必备环境

有关一些环境的准备在hexo 的安装和配置说明过了,当然,这不完全相同,我这次在新电脑中并没有采用yarn来安装,不过这个无所谓。

简单说明一下需要安装git客户端nodejs,至今的npm一般在安装nodejs中都已经包含了。

安装hexo

1
npm install hexo-cli -g

git关联github

首先,生成本地密钥(如果已经有了则不需要),这会在本地用户的.ssh文件夹中出现一个私钥id_rsa(妥善保管!),以及一个公钥id_rsa.pub

1
ssh-keygen -t rsa -C "example@example.com"

然后在个人Github的Settings中找到侧边SSH and GPG keys,点击New SSH key,将公钥id_rsa.pub中的内容复制到其中即可。

会发个邮件给你的邮箱,点击确认一下。

在git中输入

1
2
3
4
5
6
ssh git@github.com

# 出现如下内容即可:
# PTY allocation request failed on channel 0
# Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.
# Connection to github.com closed.

新建空文件夹用来做为博客使用

初始化hexo至空文件夹hexo_blog中。

1
hexo init hexo_blog

切换至hexo_blog文件夹中

1
cd hexo_blog

尝试启动hexo

1
hexo s

很不幸,我出现了一些问题

1
2
3
ERROR Cannot find module 'hexo' from 'E:\hexo_blog'
ERROR Local hexo loading failed in E:\hexo_blog
ERROR Try running: 'rm -rf node_modules && npm install --force'

于是我按照他的建议,执行了如下命令:

1
rm -rf node_modules && npm install --force

很不幸,又出了问题:

1
2
3
4
5
6
7
npm WARN using --force I sure hope you know what you are doing.
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm ERR! Unexpected end of JSON input while parsing near '...a69f8709d4bd17ffe153b'

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\username\AppData\Roaming\npm-cache\_logs\2021-12-29T08_54_26_243Z-debug.log

经查找,发现只需要清除一下npm的cache即可,原文在此

1
npm cache clean --force

接下来再本地hexo s启动一下服务试试看,发现大功告成!

以上步骤大致如此,不行就删了博客文件夹重来,反正也是空空的!

放心大胆的试吧

迁移博客

实际上只需要将原电脑上的文章和一些配置拷贝过来即可,主要是三个文件夹和一个配置文件:

1
2
3
4
scaffolds
source
themes
_config.yml

首先清除public中的内容,然后重新再生成内容,并发布

1
2
3
hexo clean
hexo d
hexo g

完成

OK,至此就完成了,本质上也就是重新搭建博客,然后将配置文件和已经有的内容给拷贝过来就可以了,也没有很麻烦嘛!

关于一些小问题

迁移之后有很多东西可能跟之前不一样了,包括版本,安装的包之类的,所以还需要根据具体情况来自己踩坑,目前我发现了两个。

插件都是需要自己在新设备上重新安装的,这个没有在上面的步骤中拷贝过来!!

本地图片上传失败

原本安装的hexo-asset-image插件不能使用了,重新安装后出现了严重警告和错误,经过查找资料发现是该插件不能用了,所以采用其他方法。参考解决 hexo5 本地图像上传后无法显示的问题

首先,卸载安装的hexo-asset-image

1
npm uninstall hexo-asset-image --save

然后,同样修改修改博客配置文件_config.yml中的 post_asset_foldertrue

1
post_asset_folder: true

最后,安装post_asset_folder

1
post_asset_folder: true

在之后在博客中就正常使用原方法传文件即可。

主题中添加搜索功能

安装hexo-generator-searchdb插件:

1
npm install hexo-generator-searchdb --save

首先修改博客配置文件_config.yml,如下:

1
2
3
4
5
search:
path: search.xml
field: post
format: html
limit: 10000

然后,修改主题配置文件_config.yml如下:

1
2
3
4
5
6
local_search:
enable: true
trigger: auto # trigger若为auto, 通过改变输入触发搜索;trigger若为manual, 通过按下enter键或者点击搜索按钮触发搜索
top_n_per_article: 1 # 展示每篇文章的前n个结果,如果想要展示所有结果,设置为-1
unescape: false # 将html字符串转义为可读的字符串。
preload: false # 当加载页面时预加载搜索结果
------ 本文结束------