基于hexo和github搭建个人博客教程
准备工作
tips: 建议掌握科学上网,否则git安装包可能就要下一天))
-
安装git,我选用的是windows,64位版本,git version 2.47.0.windows.2
-
安装node.js,我选用的是22.11.0版本(请不要使用23.3.0版本,亲测存在bug,详情自行查找github上相关内容)(Node.js安装包包含npm,无需单独安装)
安装完成之后在桌面右键打开git bash,输入以下命令:(出现版本号则说明安装成功)
1 | npm -v |
- 安装hexo
1 | npm install hexo-cli -g |
- 通过git bash命令行选择一个合适的目录创建一个新的hexo博客文件夹,例如hexo blog,并进入该目录
1 | mkdir hexo blog |
- 初始化hexo博客并安装组件
1 | hexo init |
-
登录/注册github账号
-
在桌面右键打开git bash,输入以下命令,设置用户名和邮箱
1 | git config --global user.name "github 用户名" |
- 创建SSH Key并添加到github
1 | ssh-keygen -t rsa -C "github 邮箱" |
-
打开C:\Users\你的用户名.ssh\,找到id_rsa.pub文件用记事本打开,复制里面的内容,登录github,点击左上角头像,选择
setting
,选择SSH and GPG keys
,点击New SSH Key
,把复制的公钥粘贴到Key中,title随便起,点击Add SSH Key
。 -
打开git bash,输入以下命令检查是否连接成功:
(出现Hi yourusername! You've successfully authenticated, but GitHub does not provide shell access.
则说明连接成功)
1 | ssh -T git@github.com |
-
创建github pages仓库,选
New repository
,在repository name
中输入yourname.github.io
,选择Public
,点击Add a README file
,点击Create repository
。 -
输入以下命令查看博客:
1 | hexo generate # 以后可简写为hexo g,生成静态文件 |
-
打开浏览器,输入
http://localhost:4000
,看到hexo默认的主题,说明博客搭建成功。ctrl+c关闭本地服务器。 -
打开博客文件夹,找到
_config.yml
文件,修改以下内容:
1 | # Site |
- 保存并关闭文件,输入以下命令:
1 | npm install hexo-deployer-git --save # 安装hexo-deployer-git插件,否则无法执行hexo d命令 |
- 打开浏览器,输入
http://yourname.github.io
,看到你的博客,说明部署成功。tips:以后部署博客步骤一键四连即可,如果只是想预览博客直接hexo s
也可以,别忘了上传。
安装配置butterfly主题
不详细展开 实际上这一步可能是最长的(((
请参照官方文档Butterfly主题文档进行安装配置!功能很多,自行参考或寻找其他教程,butterfly主题还有很多魔改功能,可以自行探索。
最后重新部署网站就能看到butterfly主题的效果了。在实现相关功能之前请确保安装了所需的组件。
安装配置Picgo图床插件(可选)
不做赘述,强烈建议搜索相关教程,简单易上手,推荐使用Gitee图床,免费且与github长相差不多,准确来说就是国内版。(这一步推荐配合本地相对路径一起食用,全部用图床的图片有可能会像我一样遇到Gitee/CDN给图片重定向的问题,导致无法正常显示)
创建博客
1 | hexo new post "博客标题" # hexo n |
1 | hexo cl && hexo g && hexo d && hexo s # 一键四连,更推荐自己写一个bat脚本来实现,效率高嘛 |
还有话要说
本教程只是简单的介绍了一下创建教程,本人搭建期间也遇到了很多问题,但最终都自行查找解决,希望能帮助到大家。
找不到解决方案或者希望能有更深入的理解可以和ChatGPT讨论,可以锻炼自己提问的能力和debug的能力(bushi)
建议至少掌握一点markdown的语法,对开发者工具有一些了解,能读懂一点HTML,CSS代码,这些技能树(技能苗?)可以有效的帮助你解决出现的bug,甚至可以自己尝试魔改主题文件)
最后祝你使用愉快!
特别鸣谢:
感谢theuho大佬(),帮助我解决了几个关键的bug