使用Hexo与GitHub搭建独立域名博客


环境要求

  • Git
  • Nodejs
  • 安装Hexo及代码提交托管需要以上两个条件

安装 Git

Windows平台下安装

Windows平台下安装相关要简单,下载安装包一路下一步便是。因此不在多叙述。Git官网下载 淘宝镜像下载

CentOS平台安装

在CentOS平台安装最好是先更新为国内Yum源,并更新系统软件等包为最新。这样速度较快,支持较好。

$ sudo yum install git

Ubuntu平台安装

在Ubuntu平台安装与在CentOS相差不大

$ sudo apt install git

Mac平台安装

在Mac平台安装既可以通过GUI的方式来安装也可以通过Command的方式来安装,使用Homebrew进行安装:

$ sudo brew install git

如果没有安装HomBrew, 可以参考

Git 配置命令

#使用前配置全局信息
git config --global user.name '你的名字'
git config --global user.email '你的邮箱'
#查看是否已配置成功
git config --list --global
#在你需要使用Git的文件夹下运行
git init                        #初始化
git add .                        #添加变更文件到暂存区
git status                        #查看变更信息
git commit -m '你需要写的信息'        #提交到工作区
git remote add origin https://github.com/用户名/仓库名.git    #添加Github远程连接
git push origin                 #上传到GitHub
git push origin -f                #强制上传到GitHub

Git代理相关

查看当前的代理设置

git config --global http.proxy
git config --global https.proxy

设置当前代理

git config --global http.proxy 'http://127.0.0.1:1080'
git config --global https.proxy 'http://127.0.0.1:1080'

git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'

删除代理

git config --global --unset http.proxy
git config --global --unset https.proxy

其它Git用法请参考文档

安装 Node

Windows平台安装

Windows平台安装Node较简单,不再多叙述。 Node下载

安装完后输入 node -v 查询版本信息

CentOS平台

$ sudo yum install nodejs npm

源码安装,先下载 Node源码

$ sudo tar -xvf node-v10.16.0-linux-x64.tar.xz
$ sudo mv node-v10.16.0 /home/blue/applications
$ ln -s /home/blue/applications/node /home/blue/applications/node
$ sudo chmod -R 755 /home/blue/applications/node-v10.16.0
$ sudo chmod -R 755 /home/blue/applications/node
$ cd /home/blue/applications/node
$ sudo ./configure
$ sudo make && make install
$ sudo node --version
v10.16.0

Ubnutu平台安装

$ sudo apt-get install nodejs npm

Mac平台安装

$ sudo brew install node npm

设置国内NPM源

# 永久设置全局淘宝镜像源
npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global
# 临时修改镜像源
npm --registry=https://registry.npm.taobao.org
# 永久设置为淘宝镜像源
npm config set registry https://registry.npm.taobao.org
# 查看npm的配置
npm config list

安装 Yarn (非必须)

npm install -g yarn
# 配置yarn淘宝源
yarn config set registry 'https://registry.npm.taobao.org'
# 设置 npm 缓存
npm config set prefix "/home/blue/applications/cache/node/prefix"
npm config set cache "/home/blue/applications/cache/node/cache"

还需要将/home/blue/applications/cache/node/prefix添加到PATH环境变量

博客搭建

安装 Hexo

npm install -g hexo   #安装hexo
npm install           #安装博客需要的依赖文件
# 配置国内淘宝 cnpm ( 使用npm较慢时可改用)
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
$ sudo cnpm install -g hexo

Hexo 初始化

创建一个hexo仓库文件夹,进入文件夹初始化hexo

$ cd /home/hexo
$ hexo init
INFO Cloning hexo-starter .....

初始化完成后,在hexo目录下生成相关文件

hexo 目录结构

  • _config.yml 配置文件
  • _public 生成的静态文件,这个目录最终会发布到服务器
  • _scaffolds 通用模板
  • _source 保存编写的markdown文件
  • drafts 草稿文件
  • themes 博客主题
  • node_modules 类库

安装博客主题

在hexo目录中运行

git clone https://github.com/blinkfox/hexo-theme-matery themes/matery
# 启用主题
$ vi _config.yml
# 修改文件中的 theme
theme: matery

克隆完成后,在/Hexo/themes目录下,可以看到 landscape和matery 两个文件夹。
我们所要使用的主题都是放在这个目录下,Hexo默认使用的是landscape主题,NexT主题用的比较多且更多样化,我们这一步克隆了next主题,接下来会使用next主题进行演示。
想获取更多主题,可在网站:此处选择自己喜欢的主题,按照此步的步骤clone下来。

hexo目录中_confit.yml文件配置

# Site
# 博客名称
title: aiotlab
# 副标题 
subtitle: aiotlab blog
# 个人简介
description: 这是 aiotlab blog
keywords: aiotlab,lag,aiotlab
# 博主
author: Jeremy Peng
# 语言
language: zh-CN
# 时区
timezone: Asia/Shanghai
url    :网址    
root :网站根目录    
permalink: 文章的永久链接格式 :year/:month/:day/:title/
permalink_defaults:    永久链接中各部分的默认值    
pretty_urls: 改写 permalink 的值来美化 URL    
pretty_urls.trailing_index: 是否在永久链接中保留尾部的 index.html,设置为 false时去除
pretty_urls.trailing_html: 是否在永久链接中保留尾部的 .html, 设置为 false 时去除
# 目录(基本不需改)
source_dir        资源文件夹,这个文件夹用来存放内容
public_dir        公共文件夹,这个文件夹用于存放chang生成的站点文件
tag_dir            标签文件夹
archive_dir        归档文件夹
category_dir    分类文件夹
code_dir        Include code 文件夹,source_dir 下的子目录
i18n_dir        国际化(i18n)文件夹
skip_render        跳过指定文件的渲染。(常用于跳过GitHub的README.md渲染)
# 分页
per_page        每页显示的文章量 (0 关闭分页功能,默认10)
pagination_dir    分页目录
# 主题,当前主题名称
theme: matery
# 发布
deploy:
  type: git
  repo: 仓库
  branch: 分支

新建分类categories页

hexo new page "categories"

编辑文件 /source/categories/index.md,内容如下:

---
title: categories
date: 2020-03-01
type: "categories"
layout: "categories"
---

新建标签 tags 页

hexo new page "tags"

编辑文件 /source/tags/index.md,内容如下:

---
title: tags
date: 2020-03-01 18:23:38
type: "tags"
layout: "tags"
---

新建关于我 about 页

hexo new page "about"

编辑文件 /source/about/index.md,内容如下:

---
title: about
date: 2020-03-01 17:25:30
type: "about"
layout: "about"
---

新建友情连接 friends 页(可选的)

hexo new page "friends"

编辑文件 /source/friends/index.md,内容如下:

---
title: friends
date: 2020-03-01 21:25:30
type: "friends"
layout: "friends"
---

同时,在你的博客 source 目录下新建 _data 目录,在 _data 目录中新建 friends.json 文件,文件内容如下所示:

[{
    "avatar": "https://cdn.jsdelivr.net/gh/jeremysvn/aiotlab/medias/avatar.jpg",
    "name": "AiotLab",
    "introduction": "这是我的博客",
    "url": "https://aiotlab.info/",
    "title": "前去学习"
}, {
    "avatar": "https://s2.ax1x.com/2020/02/13/1q6iAs.th.png",
    "name": "AiotLab",
    "introduction": "这是我的其他博客",
    "url": "http://aiotlab.cc/",
    "title": "前去查看"
}]

新建留言contact页

hexo new page "contact"

编辑文件 /source/contact/infex.md 内容如下:

---
title: contact
date: 2020-03-01 21:25:30
type: "contact"
layout: "contact"
---

发布测试

本地发布测试

hexo clean && hexo g && hexo s
...
INFO  Start processing
INFO  Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.

访问 http://localhost:4000/ 即可看到博客效果

博客部署

创建Github仓库

访问 https://github.com/ ,申请注册账号,并创建一个仓库

配置_config.yml

deploy:
  type: git
  repository: git@github.com:帐号/仓库名.git
  branch: master

配置 ssh key

创建 ssh key

ssh-keygen -t rsa -C “aiotlab@126.com”

连续三个或四个回车,生成密钥,最后得到了两个文件:id_rsa和id_rsa.pub

添加密钥到ssh-agent
eval "$(ssh-agent -s)"
添加生成的SSH key到ssh-agent
ssh-add ~/.ssh/id_rsa

登录Github,点击头像下的settings,选择右边的ssh and GPG keys 添加ssh
新建一个new ssh key,将生成的id_rsa.pub文件里内容粘贴上面就行啦

测试是不否添加成功

ssh -T git@github.com

如果看到后面显示的是你的git用户名,说明添加成功。

配置Deployment,在其文件夹中,找到_config.yml文件,修改deploy中的repo值(在末尾)
repo值是你的github项目中右边Clone or download可以看到

发布项目

安装自动部署发布工具

npm install hexo-deployer-git --save

发布命令

hexo clean && hexo g && hexo d

发布时会提示输入github帐号和密码(未添加ssh key),提示发布完成

设置CNAME

在 hexo 项目下,source 文件夹下面创建 CNAME 文件(没有后缀名的),在里面写上购买的域名。比如:

baize.cc

在 github 上面,打开 username.github.io 项目的(Settings)设置,然后在 GitHub Pages的 Custom domain设置里填上购买的域名。

打开你添加的域名,是否发布成功。


文章作者: Jeremy Peng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jeremy Peng !
 上一篇
使用Sublime Text 3写Markdown 使用Sublime Text 3写Markdown
目前Sublime Text 3已经支持高亮显示原始Markdown和MultiMarkdown语法,如果不需要预览功能或是GitHub Flavored Markdown支持,可以直接使用。
2020-03-02
下一篇 
梦回徽州-游徽州散记 梦回徽州-游徽州散记
徽州就像一瓶陈年好酒,在亲密接触过后,即使转身离去,依然留下长久的回味。它的民居、园林、水口、牌坊和雕刻,无不张扬出极强的个性色彩,弥漫着生活化的感染力。
2016-12-01
  目录