使用 hexo + github pages 搭建个人博客

1. 前言


最近想用博客来记录一下自己的学习过程,以前都是用有道云记笔记,每次查看笔记都需要登录,而且笔记仅自己可见。因此,用博客记笔记是个不错的选择,它不仅有一个好看的界面,而且能用浏览器随时访问,很方便。最重要的一点是它能被更多的人看到,如果你写的东西正好对别人有帮助,你会发现这将是一件很有成就感的事。大家都知道,学习最好的方法就是一个输入和输出的过程,如果只有输入而没有输出,是永远学不好的,而博客恰好是一种很好的输出工具。我们在写博客的时候其实就是在给别人讲解的过程,只有给别人讲清楚了,我们才真正学会了。好吧~ 扯远了,回归正题,那究竟用什么博客好呢?我观察了一下网上的各大博客平台,像CSDN、博客园和简书等都是不错的平台,但是我不喜欢,因为广告很烦人,界面不好看。那么只剩下两种方法了,自己搭建一个博客网站和用 github 搭建博客网站(其实还有一种方法就是你可以注册一个公众号来记录自己的学习过程,感兴趣的同学也可以尝试下)。自己搭建一个博客网站的话对于学生的我来说成本太高,虽然网上有很多博客模板,但是我觉得太浪费时间了,所以直接 pass 掉。当然,感兴趣的同学可以自行尝试,我这里主要介绍第二种方法,用 github 搭建个人博客。那为什么用它呢?大家应该都知道 github 是全球最大的同性交友网站,也是每个程序猿必备的网站,上面有很多优秀的开源项目值得我们学习,所以选他准没错啦。并且用 github 搭建博客的好处就是不用花一分钱就可以搭建一个自由的个人博客,不需要什么服务器也不需要什么后台,博客内容也可以轻松打包,发布到其它平台。好了,废话不多说,接下来就让我们一起用 github 搭建我们的个人博客。

2. 准备工作


2.1 注册 github 帐号

用 github 搭建博客肯定得先有一个 github 帐号,没有的同学可以去官网注册一个,至于怎么注册就不用多说了。注意:注册的邮箱一定要验证,否则会影响后续的使用。还有国内访问 github 会比较慢,所以建议大家用 google 浏览器访问,这样访问会比较快一点。
github 官网地址: https://github.com/

2.2 安装 node.js

官网下载地址:node.js
进入官网点击如下图红框圈起的内容自动下载即可

如果官网下载太慢,也可以进入 node.js 中文网下载
中文网下载地址:node.js 中文网

下载完成后点击安装包进行安装,一路默认 next ,最后点击 install 安装即可。

安装完毕之后,快捷键 win + R ,在弹出的运行框中输入 cmd,回车,然后在 cmd 中输入 node -v ,出现下图 node.js 的版本号表示安装成功。

值得注意的是,node.js 安装成功后系统会默认配置环境变量,所以我们不用手动配置环境变量。如果你输入 node -v 之后提示不是内部命令,那么就是你的环境变量出了问题,此时可以打开系统环境变量查看配置是否正确。

在 win10 的搜索框中输入编辑系统环境变量即可,你也可以用其它方法打开。

这里一定要确保 node.js 环境变量中的路径和你安装 node.js 的目录路径一样,否则后面会出现很多问题。我就是手贱将 node.js 的安装目录名改了,导致后面出现了很多问题。因此,安装成功后千万不要更改安装目录的目录名,并且安装目录名最好不要有中文。

2.3 安装 git

官网下载地址:git
进入官网

点击上图右边红框的内容,进入以下界面,此时浏览器已经开始下载,你也可以自行选择下载。

这里下载可能会很慢,我的是等了很长时间才下好的。实在不想等的同学也可以用我的,我的操作系统:win10 64位,git 安装版本为 Git-2.22.0-64-bit.exe(2019.7的版本)
百度网盘下载链接:https://pan.baidu.com/s/14BpYHMIF3K9QG9boVX7bdA
提取码:r7p2

下载好之后点击安装包进行安装,一路默认 Next,最后点击 Install 即可。注意:不同版本安装过程可能存在一些差异,不过影响不大,这里只以我的版本为例。

安装好之后在桌面点击鼠标右键,出现如下界面,你会发现多了两个东西。

此时说明 git 已安装成功,如果你不放心,也可以打开 cmd ,然后输入 git,显示如下内容说明安装成功。

准备工作大概就这些了,最后在说明一下本文所使用的环境:

  • Windows 10
  • node.js 版本 10.16.0
  • git 版本 2.22.0
  • hexo 版本 3.9.0

3. 创建 github pages


首先登录我们注册好的 github 帐号,登陆后新建一个仓库

然后填写仓库的名称和描述,这里一定要注意仓库名称的格式:你的用户名.github.io,你的用户名就是你注册时填的用户名。描述属于可选项,填完点击创建仓库即可,描述就是你对该仓库的描述,后面可以再填,不影响创建。

创建之后会进入以下界面,然后点击 Settings

点击 Settings 之后进入如下界面

在该页面往下翻,找到 github pages,点击 choose a theme 选择主题。

然后选一款自己喜欢的主题,这个可以随便选,因为后面也用不到。

最后出现以下界面(如果没有出现可忽略这步),拉到最后选择 Commit changes 就行。

这样博客首页就做好了,现在可以在浏览器中输入:用户名.github.io 进行访问。以我的为例输入 Duduanwangu.github.io 显示如下界面。如果出现404,请检查你注册的邮箱有没有验证。

4. 配置 SSH Key


配置这个是因为你用 git 提交代码到 github 需要你的 github 权限,使用 ssh key 可以解决本地和 github 的连接问题,而且也比较安全。当然你也可以不用配置,直接使用用户名和密码提交代码也可以。

接下来在桌面上右键鼠标选择 git bash here 打开 git

打开之后输入

cd ~/.ssh  #检查本机已存在的ssh密匙

如果提示以下内容,说明你是第一次使用 git

No such file or directory

此时继续输入

ssh-keygen -t rsa -C "邮件地址"  #邮件地址就是你注册账户时用的邮箱

然后连续三次回车,最终会生成一个文件在用户目录下,打开用户目录(一般在C盘),找到 .ssh 文件夹。

进入 .ssh 目录找到 id_rsa.pub 文件,用记事本打开并复制里面的内容。然后打开你的 github 主页,点击你头像下方的 Settings,进入个人设置,接着点击 SSH and GPG keys --> New SSH key(右上角一个绿色的按钮,点他创建新的ssh)。

将刚复制的内容粘贴到 Key 里,Title 随便填,最后点击 Add SSH key 即可。

4.1 测试是否成功

在 git 中输入:

ssh -T git@github.com

如果提示 Are you sure you want to continue connecting (yes/no)? ,输入 yes,会看到:

Hi Duduanwangu! You've successfully authenticated, but GitHub does not provide shell access.

看到这个说明 SSH 配置成功!

4.2 设置 git 的 user name 和 email

因为 git 是分布式版本控制系统,所以,每个机器都必须自报家门:用户名和 email。
在 git 中分别输入命令:

git config --global user.name "Duduanwangu"   #你的github用户名,非昵称
git config --global user.email  "xxx@qq.com"  #填写你的github注册邮箱

注意 git config 命令的参数 --global,用了这个参数,表示这台机器上的所有 git 仓库都会使用这个配置。当然你也可以只对某个仓库使用,去掉 --global 参数即可。

配置好之后可以使用以下命令查看配置信息:

git config -l  #查看配置信息

5. 搭建 hexo 环境


5.1 hexo 简介

Hexo是一个简单、快速、强大的基于 Github Pages 的博客发布工具,支持Markdown格式,有众多优秀插件和主题。
官网:http://hexo.io
github:https://github.com/hexojs/hexo

5.2 安装 hexo

首先创建一个存放 hexo 组件的目录,这个目录就是你以后写博客的地方。
在这个目录右键选择 Git Bash Here

然后再命令行输入 npm install hexo -g,开始安装 Hexo

这里 npm 安装会很慢,我的等了半天也没动静,不过我们可以将 npm 的源换为淘宝的镜像源,在命令行中输入以下命令即可。

npm config set registry "https://registry.npm.taobao.org" #改为淘宝镜像源

执行上面命令之后,再输入 npm install hexo -g 会快很多。

安装好之后,输入 hexo -v,检查 hexo 是否安装成功。出现下图内容说明安装成功。

5.3 初始化

命令行输入 hexo init,这里会比较慢,请耐心等待。

完成后显示 INFO Start blogging with Hexo! 这串提示说明初始化成功

接着输入 npm install,安装所需要的组件

然后回到我们刚才创建的目录,发现多了一堆东西

5.4 修改全局配置

接着在目录中打开 _config.yml 配置文件,这里不要用记事本打开,最好用 VS code 或者其它编辑器打开,并且确保编辑器此时的编码为 utf-8,否则会出现中文乱码。

打开之后,翻到文件末尾,添加以下内容。其中 theme 是主题的名字,我们后面在改,主要往 deploy 里添加内容。修改完后保存即可。

注意:repository 这里还有另一种写法:

repository: https://github.com/Duduanwangu/Duduanwangu.github.io.git

这种写法是针对 hexo2.x 的写法,对 hexo3.x 的已经没有用了,因为我的版本是 hexo3.x 的,所以不用这种写法。

5.5 本地预览

使用命令 hexo s 在本地4000端口开启服务进行预览,这个命令很有用,当我们写好博客之后,可以使用这个命令进行本地预览,然后再提交到 github。取消预览:快捷键 Ctrl + C

接着在浏览器中输入 localhost:4000 访问博客主页,也可以输入 127.0.0.1:4000。

出现上图的页面说明我们的环境基本准备的差不多了,接下来就是修改博客的主题了,因为默认的主题不好看。(PS:如果没有出现上图页面,有可能是你的端口被占用了,至于如何解决,我也不懂)

6. 修改博客主题


6.1 选择主题

我们可以在 hexo 官网选择一款我们喜欢的主题:hexo主题官网
选择自己喜欢的主题后点击主题名进入发布人的 github。

我个人比较喜欢的两个主题:hexo-theme-yiliahexo-theme-tomotoes

这里主要以第一个主题 hexo-theme-yilia 为例。对第二个主题感兴趣的同学可以参考这篇文章:https://foxgrin.github.io/posts/29757/

6.2 安装主题

点击第一个主题连接,进入主题的 github ,复制主题连接。

然后回到我们的博客目录,进入 themes 文件夹,右键选择 Git Bash Here,输入 git clone + 复制的连接,开始下载主题。(注意:在 git 中粘贴要用右键,Ctrl + V 没有用)

上图是我忘记进入 themes 文件夹就开始下载了,不过没有影响,下载完后移入 themes 文件夹就行。下载过程可能会比较慢,觉得太慢的同学可以用另一种方法,就是直接在 github 下载主题的压缩包到本地,然后解压到 themes 文件夹即可。

这里可以将下载的主题文件名改为 yilia,这样好记一点。

然后进入主目录下的配置文件 _config.yml

找到末尾刚才说的 theme 配置,将它修改为 yilia,就是主题的文件名。

接着 git 中输入 hexo g 生成 public 文件夹,这个文件夹的内容都会提交到 github 上。

hexo s 开启本地预览服务,预览主题效果:

6.3 修改主题配置

先修改博客根目录下的 _config.yml 文件,在文件开头相应的地方写你的名字,其它先不用管。

然后 git 中输入以下命令,注意是在根目录下执行这条命令:

npm i hexo-generator-json-content --save

_config.yml 文件末尾加上以下配置,记得保存。

jsonContent:
  meta: false
  pages: false
  posts:
    title: true
    date: true
    path: true
    text: false
    raw: false
    content: true
    slug: false
    updated: false
    comments: false
    link: false
    permalink: false
    excerpt: true
    categories: true
    tags: true

接着打开主题目录下的配置文件 _config.yml

在文件开头根据自己的情况选择

6.4 头像等其它图片的设定

/hexo-blog/source 目录下创建 img 文件夹,以后所有上传到文章的图片都存放在这里面,不同的图片你可以在这个文件夹下再创建不同的文件夹来存放。

然后在主题的配置文件 _config.yml 中找到头像的配置,输入你的图片 url。

配置文件中其它需要图片的地方方法都与上面的一样,至于其它地方的配置,大家可以参考主题的 github

最后在 git 中分别执行以下两条命令:

hexo g  #生成
hexo s  #启动预览服务
#两个命令也可以组合使用:
hexo s -g  #生成并预览

6.5 创建必要的文件夹

开启标签页,git 中输入命令:

hexo new page tags

执行完后,会发现 /hexo-blog/source 下面多了 tags 文件夹。接着在 tags 文件夹下创建文件夹随笔,在随笔文件夹下创建 index.md 文件(手动创建,不用命令,文件内容可以为空)。

开启分类页:

hexo new page categories  #git中输入这条命令

开启关于页:

hexo new page about

7. 上传到 github


git 中输入命令 hexo d 将 public 中的内容提交到 github,如果显示以下内容:

原因是还需要安装一个插件,输入命令:

npm install hexo-deployer-git --save

然后分别输入以下两个命令:

hexo g  #生成,相当于更新
hexo d  #上传到github

这里补充一条命令 hexo clean,执行这条命令后会清空 public 的内容,如果在执行上两条命令的过程中出现了一些莫名其妙的问题,可以先执行这条命令清理一下 public 的内容,然后再来重新生成和发布。

此时你在浏览器中输入你的用户名.github.io,就能访问你的博客主页了。

注:第一次上传可能需要你的 github 密码。

7.1 上传文章

所有上传的文章都要放在 hexo-blog/source/_posts 目录下,并且文章的格式都必须是md。

放好文章之后执行 hexo d -g (hexo ghexo d 的组合命令) 命令,上传到 github。上传之前你可以先 hexo s 本地预览,看看有没有什么问题。执行命令 hexo g 后,hexo 默认会把md文件都转化为 index.html 文件,一般存放在 public 目录下的以时间命名的文件夹下:

这个文件夹的名称是可以更改的,但 index.html 文件不能删,如果你想在你的 github 上看到md的文件,你可以复制相应的md文件到对应的 index.html 文件下。

7.2 保留 README.md 等文件

README.md 等不是文章的文件可以直接放在 source 文件夹下,他们会生成到 public 目录下。

README.md 文件会默认转换为 html 文件,所以上传到 github 之前,可以手动将 README.md 复制到 public 目录下,并删除 README.html 文件(这个文件不会在博客主页出现,所以可以删除),然后就可以到你的 github 博客仓库查看效果。

不过这个方法很麻烦,因为每次执行 命令 hexo g 后,public 目录下都会生成 README.html 文件,所以我们换另一种方法。首先打开博客根目录下的配置文件 _config.yml,然后找到 skip_render,在后面加上README.md 即可。这样就不用每次都手动删除 README.html 文件了。

8. 写博客


执行命令:

hexo new my_first_blog  #生成md文件

hexo 会帮我们在 _posts 下生成相应的 md 文件:

#这里稍微说一下 hexo new xxx 命令和 hexo new page xxx 命令的区别:
hexo new xxx  #在_posts目录下生成相应的md文件
hexo new page xxx  #在source目录下生成相应的文件夹

我们只需要打开这个文件就可以开始写博客了,默认生成如下内容:

当然你也可以自己新建 md 文件,用这个命令的好处是帮我们自动生成了时间。
写博客文章的一般格式如下:

---
title: xxx  #文章标题
date: 2019-08-22 18:44:27  #文章生成时间,可以更改
tags: xxx  #文章标签,多标签请用用格式[xxx, xxx, xxx]
categories: xxx  #文章分类
description: xxx  #文章摘要,相当于对文章的简单描述,不过一般用不到
---

以下是正文

截断文章:也就是不让文章内容全部显示在博客主页上。
方法是在文章合适的位置加上``即可。

效果如下:

8.1 写博客工具

编写md文件的工具用的比较多的是 Typora,可以到 官网下载。
官网下载会很慢,不过我已经将安装包分享到网盘了,我的版本是2019.8月份的。
链接:https://pan.baidu.com/s/1HM_LW2b9ptpGuPx3atEANQ
提取码:zf4f

最后再附上 Typora 的使用参考手册:Typora使用手册

其实编写md文件主要用到的是 markdown 语法,只要掌握了这个语法用什么工具都行,不会的同学可以看这篇文章——markdown语法参考手册

掌握了基本的 markdown 语法后,你可以用像印象笔记、有道云笔记、石墨文档等工具编写md文件,因为它们都支持 markdown 语法,而且用起来也不错,甚至你也可以用 VS code 编辑器来编写。总之,你喜欢用哪个就用哪个。

9. 结束语


第一次写博客,肯定有许多不足之处,大家可以指出来,相互交流。希望本篇文章对大家有用。
最后欢迎大家访问我的 github 博客:https://duduanwangu.github.io/
这篇文章也放到了我的 github 博客上:搭建个人博客
同时也同步到了我的 CSDN 上。

10. 参考链接


  1. https://www.cnblogs.com/liuxianan/p/build-blog-website-by-hexo-github.html
  2. https://foxgrin.github.io/posts/29757/
  3. https://blog.csdn.net/xudailong_blog/article/details/78762262
  4. https://blog.csdn.net/renfufei/article/details/37725057
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容