hexo博客移植记录

22年8月换了新电脑,23年8月才把博客移植到新电脑上。最早建站的时候经历非常坎坷,各种配置折磨了我好久,遇到的一些问题网上查不到只能自己看着报错慢慢尝试,或者换着各种关键词去谷歌。我担心移植也会出现各种问题,大三又是比较繁忙的时候,如果出现了问题现在能显示的页面也显示不出来,还耽误时间,便暂停了移植计划,同时也暂停了更新。

不过今天终于还是将博客移植到新电脑上了,参考了一篇文章并且在ChatGPT的帮助下,移植过程可以说是非常顺利,妈妈再也不用担心我处理不了报错了(笑)。但是为了方便以后还有可能出现的移植需求,这里简单记录一下移植过程。

首先要把旧电脑中的这些内容拷贝到新电脑上合适的目录下,我在这里是E盘目录下的y006_github_io_blog文件夹。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PS E:\y006_github_io_blog> dir


目录: E:\y006_github_io_blog


Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2023-08-26 9:59 scaffolds
d----- 2023-08-26 9:59 source
d----- 2023-08-26 9:59 themes
-a---- 2022-02-11 16:23 89 .gitignore
-a---- 2022-03-31 17:49 845 package.json
-a---- 2022-04-05 15:05 3069 _config.yml

然后在新电脑上安装Git,然后在E:_github_io_blog文件夹中右键点击Git Bash Here,使用

1
hexo -v

查看是否安装好了node和hexo,如果显示下面的内容则已经安装好

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
24204@qjy_thinkbook MINGW64 /e/y006_github_io_blog
$ hexo -v
INFO Validating config
INFO ==================================
███╗ ██╗███████╗██╗ ██╗████████╗
████╗ ██║██╔════╝╚██╗██╔╝╚══██╔══╝
██╔██╗ ██║█████╗ ╚███╔╝ ██║
██║╚██╗██║██╔══╝ ██╔██╗ ██║
██║ ╚████║███████╗██╔╝ ██╗ ██║
╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝ ╚═╝
========================================
NexT version 8.10.0
Documentation: https://theme-next.js.org
========================================
hexo: 6.3.0
hexo-cli: 4.3.1
os: win32 10.0.22621
node: 16.17.0
v8: 9.4.146.26-node.22
uv: 1.43.0
zlib: 1.2.11
brotli: 1.0.9
ares: 1.18.1
modules: 93
nghttp2: 1.47.0
napi: 8
llhttp: 6.0.7
openssl: 1.1.1q+quic
cldr: 41.0
icu: 71.1
tz: 2022a
unicode: 14.0
ngtcp2: 0.1.0-DEV
nghttp3: 0.1.0-DEV

注意查看node是否安装好。上述安装过程不再进行阐述,网上资料很多。我们假设已经做好了基本软件的安装。下面进行移植。

首先我们在Git Bash Here中输入

1
hexo server

此时应该弹出一个本地链接,点进去即可看到博客原来的配置都能正常显示在本地。这里我在一开始遇到了一个关于Pandoc的报错。这是因为我在博客上显示Latex需要用到Pandoc进行格式转化。由于我为我的Typora已经下载过了Pandoc,因此我在Typora的

1
文件 -> 偏好设置 -> 导出 -> Pandoc路径

中可以找到Pandoc的可执行文件,或者你也可以去官网下载Pandoc的可执行文件,将这个文件的路径添加到

1
win系统开始图标右键 -> 系统 -> 高级系统设置 -> 环境变量 -> 在系统环境变量一栏中找到PATH,添加Pandoc的可执行文件目录

解决完这个问题后再次使用

1
hexo server

可以看到本地已经可以正常显示之前配置好的博客。

然后可以使用

1
2
3
hexo clean
hexo generate
hexo deploy

将文件上传到GitHub服务器。这里会存在一个问题就是SSH密钥问题。旧的SSH密钥可能会丢失,你可以使用

1
ls -al ~/.ssh

来检查,这里我在没有SSH密钥的时候显示如下:

1
2
3
4
5
$ ls -al ~/.ssh
total 5
drwxr-xr-x 1 24204 197610 0 Aug 26 09:10 ./
drwxr-xr-x 1 24204 197610 0 Aug 26 09:10 ../
-rw-r--r-- 1 24204 197610 92 Aug 26 09:10 known_hosts

此时我们需要新建一个SSH密钥。即使没有丢失也可以新建一个SSH密钥,不会有影响。

首先在Git Bash Here中输入

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

运行这条指令的时候会让你选择一个文件地址存放生成的密钥,可以在博客的目录下建一个文件夹叫做ssh_key,然后目录选择示例如下,注意落脚点是ssh_key文件夹下面的my_ssh_key文件

1
E:\y006_github_io_blog\ssh_key\my_ssh_key

然后启动SSH Agent并添加密钥,输入输出内容应该如下($后面的内容是我输入的内容):

1
2
3
4
5
6
7
24204@qjy_thinkbook MINGW64 /e/y006_github_io_blog
$ eval $(ssh-agent -s)
Agent pid 278

24204@qjy_thinkbook MINGW64 /e/y006_github_io_blog
$ ssh-add E:/y006_github_io_blog/ssh_key/my_ssh_key
Identity added: E:/y006_github_io_blog/ssh_key/my_ssh_key (your_email@example.com)

接下来将生成的密钥添加到GitHub:

首先仍是在Git Bash Here中输入

1
cat E:\y006_github_io_blog\ssh_key\my_ssh_key.pub

将密钥打印在终端,然后复制这个密钥到GitHub:

登录到GitHub账户,并进入“Settings”(设置)>“SSH and GPG keys”(SSH和GPG密钥)>“New SSH key”(新SSH密钥)。在“Title”(标题)字段中输入一个识别该密钥用途的名称,然后在“Key”(密钥)字段中粘贴复制的SSH公钥,最后点击“Add SSH key”(添加SSH密钥)。

完成后可以删除旧的SSH密钥,然后此时再次运行

1
2
3
hexo clean
hexo generate
hexo deploy

就可以在新电脑上上传我们的博客内容了。