使用GitHub+Hexo快速搭建自己的技术博客

IoTExpert
• 阅读 353

# 使用GitHub+Hexo快速搭建自己的技术博客

## 为什么要做技术博客

1. 你可能会遇到过这种情形, 开发中遇到一个问题不知道怎么去解决, 然后去百度找答案, 尝试各种解决方案, OK终于解决了, 没过多久又碰到同样的一个问题, 已经忘记之前是怎么解决的了, 又要花很长的时间去百度了. 如果我们把遇到的问题都自己总结出来做成笔记, 那么在我们整理这个笔记的过程中可能就会细化这个问题, 从而加强记忆掌握这个问题, 而不是说遇到问题只是百度解决问题下次再遇到再百度的一个过程, 而是应该遇到问题-->解决方案-->总结记住问题解决方案, 这才是我们能不断学习进步的一个过程.

2. 当我们坚持去做笔记做总结, 不仅方面我们自己日后去复习去查找, 如果把我们的总结放到网上也会帮助很多遇到同样问题的人, 可以替他们也节省很多时间, 日积月累我们的文章写的多了, 也会慢慢的提高我们在网络上的一个知名度.

## 做自己的技术博客要不要花钱呢

很多人一想到做网站就会想到说要买域名买服务器等等, 一年又得不少钱呐, 其实不用, 做一个技术博客可以完全免费的, 我们可以借用Github给我们提供的免费仓库来存放我们的博客项目, 也可以使用Github给我们提供的静态页面地址来访问到我们的博客, 所以都是免费的, 如果你想看起来高大上一些, 那你可以花钱买一个自己喜欢的域名, 那也花不了多少钱.

## 如何开始搭建自己的技术博客呢

### 软件安装

- 安装Nodejs [下载安装Nodejs](http://nodejs.cn/download/)

因为我是在windows下操作的所以下载的是windows的安装版

安装的过程非常简单, 直接下一步即可

使用GitHub+Hexo快速搭建自己的技术博客

- 安装Git [下载安装Git](https://git-scm.com/)

Git的安装也是直接下一步即可

使用GitHub+Hexo快速搭建自己的技术博客

- 安装Hexo

如果你已经安装了Nodejs和Git, 接下来就可以使用命令来安装Hexo了

因为是使用命令在线安装的所以一定要有网络连接

打开CMD窗口输入 `npm install -g hexo-cli`

使用GitHub+Hexo快速搭建自己的技术博客

- 初始化Hexo

安装Hexo之后打开一个文件夹, 用来初始化Hexo, 这个文件夹作为你的博客的主目录

然后使用CMD命令行进入到这个目录下执行初始化命令

`hexo init`

接着执行`npm install`命令

使用GitHub+Hexo快速搭建自己的技术博客

- 运行Hexo

在前面步骤都准备完毕的时候执行命令`hexo s -g`

然后在浏览器中输入`http://localhost:4000`即可查看已安装默认主题的Hexo

### 更换默认主题

#### 安装主题

Hexo默认的主题可能不是你想要的, 那你就可以去Hexo官方收集的[主题](https://hexo.io/themes/)里选择自己喜欢的主题,也可以自己去GitHub上面自己找主题。

我使用的主题是[NexT](https://github.com/theme-next/hexo-theme-next),在此感谢所有给Hexo提供主题的作者,给我们提供了又好看又好用的主题。

下面就针对我使用的`NexT`主题的配置做一个介绍, 其他主题的配置也都大同小异, 一般主题都会有对应的配置说明, 你可以根据自己选择的主题去修改

你可以直接从GitHub上面下载然后解压到你Hexo目录的themes目录下面,也可以使用终端克隆,如果你熟悉 Git 建议你使用克隆的方式,之后的更新可以进入到主题文件夹下通过 `git pull` 来快速更新,而不用再次下载压缩包替换, 注意目录层级, 如果解压后的主题有多级目录, 建议把主题文件放到主题文件夹下面的根目录, 也可以给主题文件夹重命名

使用GitHub+Hexo快速搭建自己的技术博客

那要怎么从默认的主题切换到刚下载的这个主题呢

找到Hexo根目录下面的 `_config.yml` 文件,将theme字段设置为你的主题名称,如`theme: next`并把之前的主题名使用`#`号注释掉, 这个主题的名字一定要和你`theme`目录下的那个主题文件夹名称一致

使用GitHub+Hexo快速搭建自己的技术博客

修改后在终端输入`Hexo s -g`,然后刷新浏览器重新访问`http://localhost:4000`就可以看到你安装的新主题啦

#### 配置主题

虽然已经切换到你新下载的主题了, 但是我们还需要对主题做一些定制化的修改

这里说两个配置文件, 一个是Hexo根目录下的`_config.yml`文件, 一个是主题文件夹下面的`_config.yml`文件, 两个配置文件同名, 暂且先叫配置一文件和配置二文件

打开配置一文件, 里面可以配置一些和你这个技术站点相关的信息, 还有如果你装了一些插件的话也要在这个配置文件中配置, 这个配置非常简单, 采用键值对的形式, Hexo官方也给出了非常详细的配置说明[https://hexo.io/docs/configuration.html](https://hexo.io/docs/configuration.html)

再说一下配置二文件, 这个是针对主题做修改的, 可以参考你下载的主题说明, 由于每个人选择的主题不同, 我这里不做详细说明了

### 发布文章

当你配置好主题之后, 那么重点就来了, 怎么发布文章呢

首先打开CMD命令窗口, CD到Hexo的根目录下, 执行下面这两条命令

`hexo new page "tags"`

`hexo new page "categories"`

这两条命令是创建分类和标签文件夹的, 执行完后会在根目录下的`source`目录中创建`tags`文件夹和`categories`文件夹, 里面分别会有一个`index.md`文件

分别打开这两个文件就行修改

`categories`下的`index.md`内容如下

```

---

title: #categories

date: 2018-05-01 10:24:00

type: "categories"

comments: false

---

```

`tags`下的`index.md`内容如下

```

---

title: #tags

date: 2018-05-01 10:24:00

type: "tags"

comments: false

---

```

这些都准备好了之后就可以写文章了, 文章格式必须是markdown的这个没得说

但是在每篇文章内容之前有一个固定的头格式是这样的

```

---

title: 博客模板

date: 2015-09-26 15:09:16

updated: 2015-09-26 15:09:16

categories: 分类名称

tags: [标签, 标签, 标签]

comments: false

description: 你对本页的描述

photos:

- 图片的网络地址

---

```

以上字段可以根据自己需要添加或者忽略不写, 一般`title` `categories` `tags`是要有的, 其他的可以不写

在下面就是你的文章内容了, 如果你的文章内容较多, 只是想在首页文章列表中显示文件的前面一小段描述可以使用 ``这个标签前面的内容就会显示, 后面的内容点击阅读全文的时候才会显示, 如果你想给你的文章弄上目录可以使用`` , 把这个加在你文章的第一行就可以了

最后写完文章之后保持`.md`文件到`source`目录下面的`_posts`文件夹中, 重新执行`hexo s -g`命令后即可在网页上看到了

### 部署Github

接下来我们就要把这个本地的博客发布到网上了, 这样其他人才可以访问的到, 我们使用的是[GitHub](https://github.com/), 如果你还没有Github的账号得先去申请一个账号, 然后登陆新建一个仓库

使用GitHub+Hexo快速搭建自己的技术博客

仓库的名称是`用户名.github.io`

使用GitHub+Hexo快速搭建自己的技术博客

创建完成之后点击Settings

使用GitHub+Hexo快速搭建自己的技术博客

如果你购买了域名的话可以在这里设置, 如果没有域名默认的访问路径就是你的仓库名称

使用GitHub+Hexo快速搭建自己的技术博客

现在就可以访问一下你的博客地址了, 会显示下面的这个界面

使用GitHub+Hexo快速搭建自己的技术博客

接下来我们就要把本地的博客上传到Github了

点击头像选择Settings

使用GitHub+Hexo快速搭建自己的技术博客

选择SSH and GPG keys

使用GitHub+Hexo快速搭建自己的技术博客

创建新的SSH key

使用GitHub+Hexo快速搭建自己的技术博客

使用GitHub+Hexo快速搭建自己的技术博客

接下来说怎么去创建上图中的Key

在你的博客的根目录右键打开一个git窗口

使用GitHub+Hexo快速搭建自己的技术博客

先设置你的用户名和邮箱

`git config --global user.email "你的邮箱地址"`

`git config --global user.name "你的英文用户名"`

生成密钥

`ssh-keygen -t rsa -C "你的邮箱地址"`

使用GitHub+Hexo快速搭建自己的技术博客

找到密钥文件的保存位置并且打开, 因为是隐藏文件所以必须显示隐藏文件才能看到

使用GitHub+Hexo快速搭建自己的技术博客

打开文件夹里面有两个文件, 打开`id_rsa.pub`并复制其内容

使用GitHub+Hexo快速搭建自己的技术博客

然后再回到Github把复制的内容粘贴过去

使用GitHub+Hexo快速搭建自己的技术博客

点击添加按钮返回添加完成页面

使用GitHub+Hexo快速搭建自己的技术博客

可以使用下列命令来测试SSH有没有添加成功

使用GitHub+Hexo快速搭建自己的技术博客

然后再返回刚才自己建的仓库

使用GitHub+Hexo快速搭建自己的技术博客

使用GitHub+Hexo快速搭建自己的技术博客

复制SSH的地址

使用GitHub+Hexo快速搭建自己的技术博客

打开博客根目录下面的`_config.yml`文件在最下方粘贴

使用GitHub+Hexo快速搭建自己的技术博客

然后打开命令行执行命令`hexo d -g`即可发布到Github

使用GitHub+Hexo快速搭建自己的技术博客

如果出现上述错误, 可以使用`npm install --save hexo-deployer-git`命令解决

再次执行命令`hexo d -g`

使用GitHub+Hexo快速搭建自己的技术博客

再次访问你的Github(用户名.github.io)地址就能看到你发布的内容了

接下来就可以尽情的写文章了

### 写在后面

#### 404页面

404页面我使用的是腾讯公益, 直接复制下面代码保存成`.html`文件放到`source`目录下重新部署到GitHub即可

```html

```

#### 图床

在写markdown的时候避免不了的要插入很多的图片, 这个时候就要使用到图床了, 推荐大家使用七牛图床

#### 绑定域名

域名申请推荐大家去GoDaddy申请, 然后绑定到Github Pages, 绑定方法也很简单, 在`source`目录下新建一个文件命名为`CNAME`没有扩展名, 内容就直接写上你申请的域名即可, 然后重新部署到Github

#### 域名解析

推荐大家使用[DNSPod](https://www.dnspod.cn), 具体可以参考[Godaddy注册商域名修改DNS地址](http://support.dnspod.cn/Kb/showarticle/tsid/42)

#### 其他

还可以自己添加统计, 分析, 搜索, 自定义挂件, 插件, 提交搜索引擎.....

点赞
收藏
评论区
推荐文章
冴羽 冴羽
3年前
从零实现一个 VuePress 插件
前言在中,我们使用VuePress搭建了一个博客,最终的效果查看:。但在搭建VuePress博客的过程中,也并不是所有的插件都能满足需求,所以本篇我们以实现一个代码复制插件为例,教大家如何从零实现一个VuePress插件。本地开发开发插件第一个要解决的问题就是如何本地开发,我们查看VuePress1.0官方文档的「」章节,并没有找到解决
待兔 待兔
4年前
技术人员为什么一定要写技术博客?
技术人员为什么一定要写技术博客?大家好,我是待兔,也是helloworld.net创始人,今天想讲讲技术人员如何提高技术以及为什么一定要写技术博客?因为接触过很多的开发者,以及在各种技术群里,也有一些人问过我好多问题主要有以下几个1.大佬你是如何提高技术的?2.你的全栈是怎么学的?3.哪来的那么多时间学习技术?首先呢,我不是
冴羽 冴羽
3年前
VuePress 博客之 SEO 优化(二)之重定向
前言在中,我们使用VuePress搭建了一个博客,最终的效果查看:。本篇讲讲SEO与重定向。问题最一开始我使用GitHubPages服务建立了站点,地址是:,考虑到GitHub在国内访问速度的问题,我又在Gitee上同步了一份,地址是:后来我决定自己建站,地址是:后来我想怎么可以不搞下https呢?于是有了新的地址:再除此之外,
Stella981 Stella981
3年前
Centos7手动编译安装apache
!(https://img2018.cnblogs.com/blog/1267816/201903/1267816201903021700240251433102194.png)现在很多人搭建web环境选择了一键脚本或可视化管理面板,因此我认为在使用一键脚本之前,一定要自己搭建一次,生产环境的话,炸了都不知道怎么快速解决可就太难受了,另外就是安
Wesley13 Wesley13
3年前
1、Python 日期时间格式化输出
今天帮朋友写自动化脚本,又需要用格式化日期,又忘记怎么写了,还是写到自己博客里面,方便日后需要的时候看一眼吧。So,临时加一篇Python的文章。1、Python的time模块importtimeprint(time.time())输出的是时间戳print(time.localtime(time.ti
Stella981 Stella981
3年前
2020年csdn盘点
  十年前就注册了csdn账号,之后一直没有写过博客,都是看别人的博客,等到2015年左右发表了第一篇自己的博客,直到2016年底觉着做技术的就需要记录自己的博客,不仅是自己学习的过程,说不定还可以帮助别人,于是坚持写了差不多四年,平均每年100篇,如今产量已经达到600篇,很多都是很浅显的内容,我刚开始写的时候,一个同事还很瞧不起这种没有技术含量的博客
可莉 可莉
3年前
2020年csdn盘点
  十年前就注册了csdn账号,之后一直没有写过博客,都是看别人的博客,等到2015年左右发表了第一篇自己的博客,直到2016年底觉着做技术的就需要记录自己的博客,不仅是自己学习的过程,说不定还可以帮助别人,于是坚持写了差不多四年,平均每年100篇,如今产量已经达到600篇,很多都是很浅显的内容,我刚开始写的时候,一个同事还很瞧不起这种没有技术含量的博客
Stella981 Stella981
3年前
Intellj IDEA 光标显示insert状态解决办法
使用idea过程中,不知道怎么回事,鼠标的光标老是insert状态,体验效果极其差劲,于是去百度,扒拉了好一阵,过滤了垃圾博客,发现了有两种方法可以解决此问题;第一种方法:在File》settings》plugins中搜索ideavim,然后取消此选项(去掉勾);然后重启idea,发现好了,心里大喜;如图:
Wesley13 Wesley13
3年前
1.1 学习约定 1.2 需求分析 2.1 域名申请 2.2 域名解析 2.3 域名备案
1.1学习约定坚持坚持坚持1.2需求分析课程项目(搭建一个站点)博客、论坛、企业网站等等1.域名2.网站代码3.服务器4.装软件(搭环境)5.出问题,怎么解决?网站维护步骤:1.域名申请域名:去哪里申请?去哪里购买?怎么样去使用域名?解析?
LibraHeresy LibraHeresy
2年前
如何搭建 VitePress
前言前段时间找工作,面对自己平平无奇的简历,萌生了搭建自己的博客的想法。说干就干,在群里潜水的时候,有一个前同事在群里发了他搭建的基于VuePress和VitePress的博客。看了以后被这种简约的风格打动了,于是开始了自己的VitePress搭建之旅。环
LibraHeresy LibraHeresy
2年前
使用 Github Pages 部署 VitePress
前言自从用VitePress快速搭建博客系统以后,一直想部署在互联网上,然后去考察了阿里云和腾讯云,发现有点小贵。因为按照我的使用习惯,只是部署博客的话,有点小亏。这几天在掘金闲逛的时候,看到这篇文章,突然就想尝试一下,因为白嫖总是令人愉悦的。实现因为这篇