准备工作
进入Github官网注册并登录:
若你已经拥有GitHub账号,可跳过这一步。
安装Node.js
Node.js为博客运行环境之一,搭建博客的主要操作在Node.js和Git的环境下完成。
安装8.10以上版本的Node.js,推荐安装10.0及以上版本。
你可前往Node.js官网进行安装:
但此方法下载速度极慢,建议前往淘宝镜像站进行下载。
安装Git
下载安装Git:
下载完成后按Win+R键,输入cmd打开命令行,并分别输入node -v
和npm -v
回车,出现版本号说明环境已经搭建完成:
安装Hexo
在任意空白处鼠标右键,单击Git Base Here,在Git控制台中输入以下代码:
ps:Git控制台中,只有开头出现$符号时才能够输入命令,但此符号不可手动输入
1 | npm install -g hexo-cli |
提示完成后,Hexo成功安装。安装后亦可通过使用hexo -v
查看版本号,若出现版本号,说明Hexo安装完成!
搭建博客
新建一个文件夹,你的博客将保存于此文件夹。
在此文件夹内再次打开Git Bash,输入以下命令:
1 | hexo init |
进行博客初始化,程序将会克隆一个Hexo项目到你当前文件目录,此过程持续的时间可能较长,请耐心等待。
当提示INFO Start blogging with Hexo!
时说明博客初始化完成。
此时你的博客文件夹内主要文件目录应当如下:
1 | ├── node_modules //依赖包 |
文件目录确认无误后,即可输入 hexo generate
生成静态网页,然后输入 hexo server
打开本地服务器:
1 | hexo generate //generate可简写为g |
稍等片刻后,打开浏览器输入http://localhost:4000/ ,就可以看到我们刚刚搭好的博客了!
当然这还只是一个雏形,我们可以对博客进行适当的美化,这里后面会提到。
创建GitHub仓库
打开Github官网,登录你已经注册好的账号,点击右上角的+号,选中New repository(新建仓库),仓库名一定要命名为xxxx.github.io
,xxxx是你的用户名。如我的用户名为JayLinton,则仓库名为jaylinton.github.io。这样Github Pages才能正确识别。
其他选项参照下图:
完成后点击Create repository即可创建仓库。
生成SSH添加到GitHub
首先右键打开Git Bash,分别输入以下命令:
1 | git config --global user.name "这里输入你的用户名" |
接下来创建密钥SSH key:
1 | ssh-keygen -t rsa -C "youremail" |
一路回车之后,他会告诉你已经生成了.ssh的文件夹,输入cat ~/.ssh/id_rsa.pub
可以得到ssh具体内容。
打开Github,点击头像选中Setting,选择SSH and GPG keys,先建一个SSH,将id_rsa.pub
内容复制进去,在Git Bash中输入ssh -T git@github.com
,若出现你的用户名,那么恭喜连接成功。
部署Hexo
打开博客根目录下的_config.yml
文件,这是博客的配置文件,在这里你可以修改与博客配置相关的各种信息。
修改最后一行的配置:
1 | deploy: |
保存后回到博客根目录,打开Git Bash,输入npm i hexo-deployer-git
安装一键发布插件。此时输入以下命令:
1 | hexo clean |
片刻后,部署完成,此时在浏览器中输入https://jaylinton.github.io/ (jaylinton改为你自己的用户名)即可打开已经部署的博客!
写文章与发布文章
在博客根目录下打开Git Bash,输入hexo new post “文章名”
新建文章。
打开source/_posts
目录可以找到一个你命名的.md文件,你可以用Markdown编辑器如Typora打开它进行创作,完成后重新生成静态网页并发布即可在新生成的博客找到你的新文章。
其他
由于Github的服务器部署在国外,大陆用户访问速度是非常感人的,你可以使用Vercel进行镜像加速,也可以使用Gitee Pages或者Coding来部署你的博客,速度会更快一些,三家托管网站大同小异,操作类似,这里不再赘述。值得一提的是,Gitee虽然服务器部署在国内,但是是不支持自定义域名的,如果不介意这一点,极度推荐使用。
另外,原始的Hexo博客是相当简陋的,你可以前往Hexo官网寻找合适的网站进行配置,如本站使用的主题是Jerry大佬的Butterfy主题。
其他未尽事宜改日详述,如有如有问题欢迎在评论区留言或者直接联系我。