基于Hexo+GitHub Page搭建免费个人博客教程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012195214/article/details/72454346

1. Hexo 介绍

Hexo 是基于NodeJs的静态博客框架,简单、轻量,其生成的静态网页可以托管在GithubHeroku上。

  • 超快速度
  • 支持Markdown
  • 一键部署
  • 丰富的插件

2. 搭建过程(重点)

前言

在开始之前,可能很多人都是看到别人个人博客网站,追其如何实现才知是基于 Hexo+Github Page 或 jekyll + Github Page 搭建而成。

1、什么是 Github Page?

Github Pages 是面向用户、组织和项目开放的公共静态页面搭建托管服务,站点可以被免费托管在Github上,你可以选择使用Github Pages 默认提供的域名github.io 或者自定义域名来发布站点。

2、选择jerryII还是Hexo?

目前主流的静态博客框架是Jekyll和Hexo, Jekyll基于Ruby实现,安装Jekyll需要搭建Ruby环境,Hexo基于Node.Js实现。 这两个静态程序功能基本类似,两个程序都有博文预览功能,可以在本地启动服务,默认都使用Markdown语法,另外Jekyll是Github推荐的管理程序。

这个教程讲述的是基于 Hexo+Github Page 免费搭建个人博客网站。

使用 github pages 服务搭建博客的好处有:

  1. 全是静态文件,访问速度快;
  2. 免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台;
  3. 可以随意绑定自己的域名,不仔细看的话根本看不出来你的网站是基于github的;
  4. 数据绝对安全,基于github的版本管理,想恢复到哪个历史版本都行;
  5. 博客内容可以轻松打包、转移、发布到其它平台;
  6. ……等等

其搭建过程大致可以分为以下几步:

  1. 在 Github 创建对应仓库

    1. 配置 Hexo 或 Jekyll 环境
    2. 设置主题,安装评论等插件

注: 既然使用到 github 上服务,不用说,怎么也得知道 git 基本操作,如果还不会这个,请自行谷歌查找教程看下,也可以参看我写的:Git和Github 学习笔记. 作为程序员如果不知道 Github 和 Git 操作也实在说不过去了。

好了,接下来开始我们的正式的搭建步骤吧!

2.1 准备工作

在开始之前,你必须已经:

  • 有一个 github 账号,没有的话去注册一个, 注册地址:https://github.com/
  • 安装了node.js、npm,并了解相关基础知识;
  • 安装了git for windows(或者其它git客户端)

说明:

  1. 安装git (因为要给github上传文章)
  2. 安装Node.js(因为Hexo是基于Node.js开发的)
  3. github:用来做博客的远程仓库、域名、服务器

2.2 环境搭建

  1. 安装 git: git 官网(https://git-scm.com/

    • Windows: 直接下载和安装
    • Mac:进入git网站下载和安装,或者进入这里下载
    • Ubuntu:打开终端复制粘贴命令 sudo apt-get install git-core
  2. 安装 Node.js:进入官网(https://nodejs.org/en/

    下载对应的安装包,直接点击安装就好了。

2.3 安装和配置Hexo

上面的环境配置成功(Node.js和Git都安装好了)以后就可以使用npm安装Hexo了。

1、判断是否 node.js 和 git 安装成功,打开cmd命令行(win+r 输入cmd回车)分别执行:

node -v
npm -v
git --version

会得到相对应的版本信息(如图)

如果都可以成功运行出现版本信息证明安装成功。

2、使用 npm 安装Hexo了。

npm install -g hexo-cli

然后打开cmd命令行(win+r 输入cmd回车)输入如下命令:等待自动安装完成后,输入:

npm install -g hexo-cli

等待自动安装完成后,输入:

hexo -v

输出了 hexo 版本号即为安装成功。

3、然后在本地目录创建一个文件夹,比如我创建的是一个名称为 “Hexo” 文件夹,然后cd到 Hexo文件夹,也就是进去这个文件夹,然后依次执行下面的命令:

hexo init
npm install
hexo generate 或者 hexo s

如果出现很多串代码的话,没有什么明显的错误就表示安装成功。

结果就是Hexo文件夹下面是这种结构:

hexo结构

然后启动本地这个服务(相当于开启了一个本地的服务器,会提示你拷贝url到浏览器):

hexo server 或者 hexo s

然后打开浏览器,输入http://localhost:4000/:4000/ 出现下图,既证明Hexo安装成功。

好的,显示的网站你可能看着不好看,现在我们更改一下主题。

ctrl+c关闭server。

比如想要更换为的主题是:https://github.com/litten/hexo-theme-yilia

说明:关于主题大多都是以压缩包形式,可以去github上搜hexo theme,会出来很多,里面都有介绍。

可以通过两种方式安装,第一个 git 操作下载压缩包,第二个直接在仓库页面下载压缩包。

打开终端窗口,输入一下命令cd themes,将目录切换到Hexo文件夹内的themes文件夹内

然后把这个主题从github网站上clone下来

git clone https://github.com/litten/hexo-theme-yilia.git

等待克隆完成,你会在themes文件夹下看到新的主题包,将这个主题包重命名为yilla.

然后打开Hexo文件夹下面的_config.yml文件,修改里面的theme为yilia.

这里写图片描述

重新打开server,浏览器输入http://localhost:4000/ 是不是看到主题已经变了!

好了,到此为止我们已经完成了本地Hexo的安装和配置。

2.3 配置github仓库

2.3.1 创建仓库

github官网 (http://www.github.com),注册账号,然后创建一个的放博客文章的仓库。

新建一个名为你的用户名.github.io的仓库,比如说,如果你的github用户名是test,那么你就新建test.github.io的仓库(必须是你的用户名,其它名称无效),将来你的网站访问地址就 http://test.github.io 了,是不是很方便?

由此可见,每一个github账户最多只能创建一个这样可以直接使用域名访问的仓库。

几个注意的地方:

  1. 注册的邮箱一定要验证,否则不会成功;
  2. 仓库名字必须是:username.github.io,其中username是你的用户名;
  3. 仓库创建成功不会立即生效,需要过一段时间,大概10-30分钟,或者更久;

创建成功后,默认会在你这个仓库里生成一些示例页面,以后你的网站所有代码都是放在这个仓库里啦。

注意的地方:

  1. 所有的配置“:”符号后面都要带空格,否则执行本地测试直接失败。
  2. language是设置语言。zh-Hans是中文。
  3. 如果设置zh-Hans后仍出现乱码问题。需要更改文件的字符编码集为UTF-8,方法很多具体,就不详细介绍了。

2.3.1 配置 SSH

为什么要配置这个呢?因为你提交代码肯定要拥有你的github权限才可以,但是直接使用用户名和密码太不安全

了,所以我们使用ssh key来解决本地和服务器的连接问题。

  • 如果你电脑上以前用过git往github上传过代码,并且配置的用户名和你github账号一致,那么你的

    github就算没有设置SSH,也可以上传成功,只需要把Hexo的配置文件配置为HTTP方式上传文章。

  • 如果你配置上传的账号和github账号不同,那么你可以把这个账号添加到你博客仓库的Collaborators上

    面,也可以上传文章。

如果你不懂上面说的啥意思,不用管那么多,那就老老实实配置SSH吧!方法如下(照搬了 stormzhang 文章):

  1. SSH

    你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的项目,但是

    你没法提交代码。仔细想想也知道,肯定不可能随意就能提交代码的,如果随意可以提交代码,那么

    GitHub 上的项目岂不乱了套了,所以提交代码之前一定是需要某种授权的,而 GitHub 上一般都是基于

    SSH 授权的。那么什么是 SSH 呢? 简单点说,SSH是一种网络协议,用于计算机之间的加密登录。目前

    是每一台 Linux 电脑的标准配置。而大多数 Git 服务器都会选择使用 SSH 公钥来进行授权,所以想要在

    GitHub 提交代码的第一步就是要先添加 SSH key 配置。

  2. 生成SSH

    Linux 与 Mac 都是默认安装了 SSH ,而 Windows 系统安装了 Git Bash 应该也是带了 SSH
    的。大家可以在终端(win下在 Git Bash 里) 输入 ssh 如果出现以下提示证明你本机已经安
    装 SSH, 否则请搜索自行安装下。

    这里写图片描述

    紧接着输入 ssh-keygen -t rsa ,什么意思呢?就是指定 rsa 算法生成密钥,接着连续三个回车键(不需

    要输入密码) ,然后就会生成两个文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密钥,id_rsa.pub 就是公

    钥。

    这两文件默认分别在如下目录里生成:Linux/Mac 系统 在 ~/.ssh 下,win系统在 /c/Documents and

    Settings/username/.ssh 下,都是隐藏文件,相信你们有办法查看的。

    接下来要做的是把 id_rsa.pub 的内容添加到 GitHub 上,这样你本地的 id_rsa 密钥跟 GitHub

    上的 id_rsa.pub 公钥进行配对,授权成功才可以提交代码。

  3. GitHub 上添加 SSH key

    第一步先在 GitHub 上的设置页面,点击最左侧 SSH and GPG keys :

    这里写图片描述

    然后点击右上角的 New SSH key 按钮:

    这里写图片描述

    需要做的只是在 Key 那栏把 id_rsa.pub 公钥文件里的内容复制粘贴进去就可以了(上述示例

    为了安全粘贴的公钥是无效的) ,Title 那栏不需要填写,点击 Add SSH key 按钮就ok了。

    这里提醒下,怎么查看 id_rsa.pub 文件的内容?

    Linux/Mac 用户执行以下命令:

    cd ~/.ssh
    cat id_rsa.pub

    Windows用户,设置显示隐藏文件,可以使用 EditPlus 或者 Sublime 打开复制就行了。

    SSH key 添加成功之后,输入 ssh -T git@github.com 进行测试,如果出现以下提示证明添

    加成功了。

    这里写图片描述

SSH配置好了,下面配置你的本地Hexo

打开Hexo目录下的_config.yml,拉倒最下面。配置如下:

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy: 
  type: git
  repository: https://github.com/test/test.github.io
  branch: master

备注:在hexo3.x版本下,这里的type应该填git,不是github;另外冒号后面都有一个英文的空格,不然会报错的。

只要把上图的test改为你自己的 github 用户名就可以了。保存,切换到 hexo 目录,一次执行下面的命令:

 hexo clean
 hexo g
 hexo deploy 或 hexo d

如果出现下图既证明已经没有出现问题。如果出现失败的提示可以把上面的配置改为下面这种使用SSH方式的提交,把用户名改为你自己的用户名。

这里写图片描述

第一次上传可能会让你输入git的用户名和密码。如果成功的话在浏览器输入(http://username.github.io) 就可以访问你的博客了,把 username 替换为你自己的用户名。

到这里为止,你已经完成了自己博客的创建了!

2.3.2 绑定域名

你不绑定域名肯定也是可以的,就用默认的 xxx.github.io 来访问(xxx 为你自己的用户名),如果你想更个性一点,想拥有一个属于自己的域名,那也是ok的。首先你要注册一个域名,域名注册以前总是推荐去godaddy,现在觉得其实国内的 阿里云 也挺不错的,价格也不贵,毕竟是大公司,放心!我买了一个后缀为.me域名,一年才13块钱。

绑定域名分2种情况:带www和不带www的。

域名配置最常见有2种方式,CNAME和A记录,CNAME填写域名,A记录填写IP,由于不带www方式只能采用A记录,所以必须先ping一下你的用户名.github.io的IP,然后到你的域名DNS设置页,将A记录指向你ping出来的IP,将CNAME指向你的用户名.github.io,这样可以保证无论是否添加www都可以访问,如下:

这里写图片描述

然后到你的github项目根目录新建一个名为CNAME的文件(无后缀),里面填写你的域名,加不加www看你自己喜好,因为经测试:

另外说一句,在你绑定了新域名之后,原来的你的用户名.github.io并没有失效,而是会自动跳转到你的新名。

2.3.3 使用Hexo写博客

由于github pages存放的都是静态文件,博客存放的不只是文章内容,还有文章列表、分类、标签、翻页等动态内容,假如每次写完一篇文章都要手动更新博文目录和相关链接信息,相信谁都会疯掉,所以hexo所做的就是将这些md文件都放在本地,每次写完文章后调用写好的命令来批量完成相关页面的生成,然后再将有改动的页面提交到github。

注意事项:

  1. 很多命令既可以用Windows的cmd来完成,也可以使用git bash来完成,但是部分命令会有一些问题,为避免不必要的问题,建议全部使用git bash来执行;
  2. hexo不同版本差别比较大,网上很多文章的配置信息都是基于2.x的,所以注意不要被误导;
  3. hexo有2种_config.yml文件,一个是根目录下的全局的_config.yml,一个是各个theme下的;

常用命令:

hexo new "postName" #新建文章
hexo new page "pageName" #新建页面
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
hexo deploy #部署到GitHub
hexo help  # 查看帮助
hexo version  #查看Hexo的版本

缩写:

hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy

组合命令:

hexo s -g #生成并本地预览
hexo d -g #生成并上传

写文章

定位到我们的hexo根目录,执行命令:

hexo new 'my-first-blog'

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

我们只需要打开这个文件就可以开始写博客了,默认生成标题、时间等内容。当然你也可以直接自己新建md文件

件,用这个命令的好处是帮我们自动生成了时间。

一般完整格式如下:

---
title: postName #文章页面上的显示名称,一般是中文
date: 2013-12-02 15:30:16 #文章生成时间,一般不改,当然也可以任意修改
categories: 默认分类 #分类
tags: [tag1,tag2,tag3] #文章标签,可空,多标签请用格式,注意:后面有个空格
description: 附加一段文章摘要,字数最好在140字以内,会出现在meta的description里面
---

以下是正文

详细的资料可以参看这篇文章,我觉得写得非常棒:
使用hexo+github搭建免费个人博客详细教程

其他参考:

3. 主题

3.1 主题搜索

3.2 制作主题

3.3 主题收藏

自己觉得还喜欢的主题,记录在这,下次可以考虑更换使用。

4. 问题

  1. 如何访问不带www的域名?

    参考:如何访问不带www的域名

  2. Hexo中播放网易云音乐的实践

    参考:Hexo中播放网易云音乐的实践

  3. hexo部署失败 ERROR Deployer not found: git

    参考:hexo部署失败 ERROR Deployer not found: git

  4. 有关使用 Hexo 和 GitHub 搭建博客,出现 hexo -d 报错如何解决?

    参考:有关使用 Hexo 和 GitHub 搭建博客,出现 hexo -d 报错

5. 关于 Hexo 最常用的几个命令

Hexo 约有二十个命令,但普通用户经常使用的大概只有下列几个:

  • hexo s

    启动本地服务器,用于预览主题。默认地址: http://localhost:4000/

    hexo s 是 hexo server 的缩写,命令效果一致;

    预览的同时可以修改文章内容或主题代码,保存后刷新页面即可;对 Hexo 根目录 _config.yml 的修改,需要重启本地服务器后才能预览效果。

  • hexo new

    hexo new “学习笔记 六”,新建一篇标题为 学习笔记 六 的文章,因为标题里有空格,所以加上了引号。文章标题可以在对应 md 文件里改,新建时标题可以写的简单些。

  • hexo d

    自动生成网站静态文件,并部署到设定的仓库。

    hexo d 是 hexo deploy 的缩写,命令效果一致。

  • hexo clean

    清除缓存文件 db.json 和已生成的静态文件 public 。网站显示异常时可以执行这条命令试试。

  • hexo g

    hexo g 是 hexo generate 的缩写,命令效果一致。

    生成网站静态文件到默认设置的 public 文件夹。便于查看网站生成的静态文件或者手动部署网站;如果使用自动部署,不需要先执行该命令。

  • hexo new page

    hexo new page aboutme新建一个标题为 aboutme 的页面,默认链接地址为主页地址/aboutme/

注: 标题可以为中文,但一般习惯用英文;

页面标题和文章一样可以随意修改;

页面不会出现在首页文章列表和归档中,也不支持设置分类和标签。


更新于 2017-10-26

没有更多推荐了,返回首页