基于Hexo+Github搭建个人博客
基于Hexo+Github搭建个人博客
[toc]
视频参考:
- [【2022最新版】保姆级Hexo+github搭建个人博客并绑定自己的域名](https://www.bilibili.com/video/BV1NY4y1C7Ng/?share_source=copy_web&vd_source=9ad882ef81c9b1d3cfabb547c13d4168
https://wushishu.xyz/post/be8880ea.html) - 手把手带你从0搭建个人网站,小白可懂的保姆级教程 | 2种方法让你拥有个人博客,程序员自学编程必备
- 超详细的个人博客搭建教程(无需服务器)- 从原理到实践手把手带你搭建属于自己的个人博客
本篇博客以第一个视频为主要参考。
博客参考:
1.1.1 安装并配置Node.js
按照教程配置完成后,在命令提示符里输入以下内容进行测试:
1 | node -v |
1.1.2 安装并配置Git
教程:Git 详细安装教程(详解 Git 安装过程的每一个步骤)
安装教程安装并配置后,开始菜单里出现了以下内容:
我们最常使用的就是Git Bash。
输入以下命令将Git与你的Github账号绑定。
1 | git config --global user.name "你的GitHub用户名" |
1.1.3 生成SSH keys
在生成SSH keys的过程中遇到了git@github.com: Permission denied (publickey)
的问题。
这里参考博客:解决git@github.com: Permission denied (publickey)
首先打开Git Bash,输入
1 | ssh-keygen -t rsa -C "你的GitHub注册邮箱" |
然后接连输入
1 | ssh -v git@github.com |
如果出现错误,就执行
1 | eval `ssh-agent -s` |
打开.ssh文件夹下的id_rsa.pub,将里面的内容复制,然后进入github账号,在settings下,SSH and GPG keys下new SSH key,title随便取一个名字,然后将id_rsa.pub里的内容复制到Key中,完成后Add SSH Key。
最后输入
1 | ssh -T git@github.com |
完整流程如下图。
1.1.4 Hexo本地访问博客
在这个过程中遇到了bash: hexo: command not found
问题。
这篇博客给了我启发:完美解决 bash: hexo: command not found
想到了是Path的问题。
我们先按步骤开始。
(1)在D盘根目录创建一个名为Blog的文件夹,文件夹刚被创建时是空的。Hexo框架与以后你自己发布的网页都在这个文件夹中。创建好后,进入文件夹中,按住shift键,右击鼠标点击命令行“Git Bash here”。
(2)使用npm命令安装Hexo,输入:
1 | npm install -g hexo-cli |
这时候我输入hexo init或者hexo s都会报错。百度到的内容无法解决问题,于是我询问了GPT-4。GPT-4的回答完美解决了我的问题,如下:
Q:你好,我的电脑系统是windows10,在安装hexo时出现了bash: hexo: command not found的问题,请问我应该如何解决
A:当你遇到 “bash: hexo: command not found” 的问题时,通常是因为 Hexo 没有正确安装或者它的可执行文件没有添加到系统的 PATH 环境变量中。以下是解决这个问题的方法:
确保你已经正确安装了 Node.js 和 npm。在命令行中输入以下命令,检查它们的版本:
1
2node -v
npm -v安装 Hexo。在命令行中输入以下命令:
1
npm install -g hexo-cli
确保 Hexo 的可执行文件已添加到 PATH 环境变量中。安装完成后,你可以在命令行中输入以下命令,查看 Hexo 的安装路径:
1
npm config get prefix
这将显示 Hexo 可执行文件的安装路径。接下来,检查此路径是否在系统的 PATH 环境变量中。在 Windows 10 中,你可以右键点击 “此电脑”,选择 “属性”,然后点击 “高级系统设置”,选择 “环境变量”。在 “系统变量” 列表中找到 “Path”,双击它并检查 Hexo 的安装路径是否已添加。如果没有,请将其添加到 Path 变量中,然后重新启动命令行窗口。
完成以上步骤后,你应该可以正常使用 Hexo 命令了。如果仍然遇到问题,请尝试卸载 Hexo,并重新按照上述步骤进行安装。
(3)我们输入hexo v测试一下是否安装成功
(4)运行hexo init blog
(5)接下来运行hexo s时又报了错。OK,直接复制报错信息然后扔给GPT-4。
A:这个输出信息表明您的 Hexo 安装是正常的,但是您需要在一个已经初始化的 Hexo 项目文件夹中运行 hexo s
(即 hexo server
)命令来启动本地服务器。
请按照以下步骤创建一个新的 Hexo 项目并启动本地服务器:
打开命令行,然后选择一个合适的目录,运行以下命令创建一个新的 Hexo 项目文件夹(例如,我们将项目命名为
myblog
):1
hexo init myblog
进入新创建的项目文件夹:
1
cd myblog
使用
hexo s
命令启动本地服务器:1
hexo s
现在,您应该能够在浏览器中访问 http://localhost:4000
并查看您的 Hexo 博客了。
为了避免将来出现类似的问题,请确保您在 Hexo 项目文件夹中运行与项目相关的命令。
这里简单说一下,按照参考博客的步骤,我输入了
hexo init blog
来进行初始化。而这条命令确实成功执行了,并且在D盘的Blog文件夹下又生成了一个blog文件夹。运行hexo s
报错是因为没有进入blog文件夹下运行。不过后来我听从GPT-4的建议,重命名了blog文件夹为myblog。然后进入myblog文件夹下执行
hexo s
就一切正常。
(6)打开浏览器访问http://localhost:4000/
1.1.5 发布网站(上传到github)
我们需要创建一个新仓库。
上面1.1.4只是在本地预览,接下来要做的就是就是推送网站,也就是发布网站,让我们的网站可以被更多的人访问。在设置之前,需要解释一个概念,在myblog根目录里的_config.yml文件称为站点配置文件,如下图
我们用记事本打开后,拉到底部,将
1 | # Deployment |
修改为:
1 | deploy: |
参考如下:
1 | # Deployment |
保存站点配置文件。
其实就是给hexo d
这个命令做相应的配置,让hexo知道你要把blog部署在哪个位置,很显然,我们部署在我们GitHub的仓库里。最后安装Git部署插件,输入命令:
1 | npm install hexo-deployer-git --save |
这里注意,要以管理员身份打开Git Bash,否则会出现权限问题。
接下来我们分别输入三条命令:
1 | hexo clean |
其实第三条的 hexo d 就是部署网站命令,d是deploy的缩写。完成后,打开浏览器,在地址栏输入你的放置个人网站的仓库路径,即xxxx.github.io 。
你就会发现你的博客已经上线了,可以在网络上被访问了。
访问博客,我的博客地址是:
1 | https://maets-906.github.io/ |
在手机浏览器上也可以访问。
这说明我们的博客已经可以在网络上被访问了。只是页面是初始页面,没有进行美化。
进行到这里,先给自己鼓个掌
1.2.1 撰写博客
博客参考:博客搭建日志
接下来重点介绍source
文件夹。新建的博客中,source
文件夹下默认只有一个子文件夹——_posts
。我们写的博客都放在这个子文件夹里面。我们还可以在source
里面新建各种子文件夹满足自己的个性化需求,对初学者而言,我们先把精力放在主线任务上,然后再来搞这些细节。
D:\Blog\myblog\source\_posts
下有个hello-world.md文件,我们点进去修改它,然后保存。
然后在Git Bash里执行:
1 | hexo cl |
hexo cl
命令用于清除缓存文件(db.json)和已生成的静态文件(public)。例如:在更换主题后,如果发现站点更改不生效,可以运行该命令。
然后打开浏览器,输入localhost:4000/
,就能发现自己的网站更新了!不过这只是在本地进行了更新,要想部署到网上(Github上),输入如下代码:
1 | hexo d |
然后在浏览器地址栏输入https://yourname.github.io
,或者yourname.github.io
就能在网上浏览自己的博客了!
以上,我们的博客网站1.0版本就搭建完成了,如果没有更多的需求,做到这里基本上就可以了。如果有更多的要求,还需要进一步的精耕细作!
1.2.2 Hexo基础修改
首先需要建立博客文件夹,建议建在非系统盘,例如
~E:/Hexo/
,那么这个目录就是我们博客的根目录了。
因为每个人的命名习惯不同,本帖之后会以 [Blogroot] 指代博客根目录。我的博客根目录其实是
~D:/Blog/
。
Hexo 初始化后,博客网站有一些关键信息是默认的,需要修改为我们自己的信息。
网站资料
修改网站各种资料,例如标题、副标题和邮箱等个人资料,请修改博客根目录的站点配置文件 _config.yml:
1 | # Site |
1.2.3 Butterfly
参考博客:Butterfly 主题美化(一)
Butterfly 主题安装
1 | npm i hexo-theme-butterfly |
此安装方法只适合hexo 5.0.0以上。
应用主题
在根目录Blog下的_config.yml中将theme:
后面的内容修改为butterfly
安装插件
如果你没有 pug 以及 stylus 的渲染器,请下载安装:
1 | npm install hexo-renderer-pug hexo-renderer-stylus --save |
Git Bash很多安装操作如果报错,尝试以管理员权限运行。
测试是否成功
依然是使用
1 | hexo cl |
打开本地localhost:4000查看页面。
可以看到是安装成功了的。
升级建议
参考博客:Butterfly 主题美化(一)
参考视频:使用Hexo搭建个人博客手摸手教学(8)|butterfly主题页面配置
为了减少升级主题后带来的不便,请使用以下方法:
在 hexo 的根目录创建一个文件 _config.butterfly.yml
,并把主题目录的 _config.yml
内容复制到 _config.butterfly.yml
去,以后只需要在 _config.butterfly.yml
进行配置就行。
一定要注意是主题目录的_config.yml。
由于我们是通过
npm i hexo-theme-butterfly
安装的,所以我们的主题不在theme里,而在D:\Blog\myblog\node_modules\hexo-theme-butterfly
路径下。在这个路径下我们可以看到_config.yml文件。
注意,这里_config.butterfly.yml要在路径D:\Blog\myblog
下创建,即和配置文件_config.yml平行的目录。
将D:\Blog\myblog\node_modules\hexo-theme-butterfly
下的_config.yml里的内容复制到_config.butterfly.yml中即可。
导航菜单
博客关键页面生成
博客有一些关键页面需要手动生成。
标签页
进入 Hexo 博客的根目录,执行:
我这里是在目录D:\Blog\myblog下执行的
1 | hexo new page tags |
打开 source/tags/index.md
文件,修改如下:
1 | --- |
我们暂时还没有设置到达标签页的方法,不过可以在浏览器地址栏中输入http://localhost:4000/tags/
来查看。
可以看到标签页是设置成功了的。
分类页
进入 Hexo 博客的根目录,执行:
1 | hexo new page categories |
打开 source/categories/index.md 文件
,修改如下:
1 | --- |
友情链接
创建友情链接页面
进入Hexo博客的根目录,执行:
1 | hexo new page link |
打开 source/link/index.md
文件,修改如下:
1 | --- |
友情链接添加
在Hexo博客目录中的 source/_data
(如果没有 _data 文件夹,请自行创建),创建一个文件 link.yml
1 | - class_name: 本站 |
关于我
进入 Hexo 博客的根目录,执行:
1 | hexo new page about |
打开 source/about-me/index.md
文件,修改如下:
1 | --- |
至此,简单的 Hexo 博客框架就完成搭建了。
1.2.4 Butterfly 主题美化
参考博客:Butterfly 主题美化(一)
参考视频:使用Hexo搭建个人博客手摸手教学(10)|ButterFly主题配置一
这个视频内容比较长,官方文档也比较长- -
所以照着博客简单弄了一下。
在这个过程中报了很多次错,通过排查发现是在_config.yml
文件中,有的冒号后面没有跟空格的缩进错误。
还有很多错误是js的缩进格式错误或者没有安装插件,不过通过GPT-4逐一排查后全部解决。
本地预览下效果,还是不错的。
1.2.5 发布博客
1 | hexo new post "新建博客文章名" |
hexo new post "新建博客文章名"
是一个命令,用于在您的 Hexo 博客项目中创建一篇新文章。这个命令会在 source/_posts
目录下生成一个新的 Markdown 文件,文件名就是您在命令中指定的文章名。您可以编辑这个 Markdown 文件来撰写您的博客文章内容。当您运行 hexo generate
(或简写为 hexo g
)命令时,Hexo 将会把这篇文章生成为一个静态 HTML 文件,然后可以通过部署到托管服务来展示给访问者。 ——来自GPT-4