Hexo+GitHub搭建个人博客
概述
Hexo是一个快捷、简单、功能强大的个人博客框架,使用Node.js下载与安装,上百个文件仅需几秒就可以安装完毕;Hexo的页面使用Markdown语法,简洁高效;通过简单的命令即可发布到网站,支持发布到GitHub Pages Heroku和其他站点;同时Hexo拥有丰富强大的插件系统,可以根据个人需要进行安装。本文主要针对技术开发人员如何快速的搭建Hexo博客做一个详尽的教程,也是对自己在搭建博客的过程中遇到的问题进行总结,避免以后的小伙伴踩坑。本文从五个方面进行讲解,分别为:
- 环境部署
- HEXO安装与常用命令
- 个性化设置
- HEXO部署Github
定制化个性域名
环境部署
1.Node.js
首先我们需要安装Node.js,点击进入node.js官网,按照通用的安装方式下载安装即可。Node.js主要用于生成静态界面。
2.Git
这里说的git实则是为了使用git指令,我们的git使用一般有两种方式,一种是图形化界面(GUI),另一种是通过命令行,我们这里要使用的是后者,点击这里进入git的下载网站下载git的安装包。作用:把本地的hexo内容提交到github上去.
3.GitHub配置
申请账号
如果你没有GitHub账号,请到这里进行注册申请,详细注册过程略。
建立仓库
点击右上角的”+”选择New respository 建立新仓库,如图:
接下来需要配置仓库信息,如图:
这里我们需要填写Repository name,注意这里的命名规范,如果我们要把这个仓库作为我们的个人博客,必须遵照以下规范命名:github用户名.github.io,点击Create repository即可。生成添加秘钥
本机生成秘钥是为了方便以后更新博客不用每次都输入用户名密码,这个根据个人需要,不是必须操作。
在终端输入:$ ssh-keygen -t rsa -C “Github的注册邮箱地址”
待秘钥生成完毕,会得到两个文件id_rsa和id_rsa.pub,这两个文件位于:
这个目录下,用文本编辑器(notepad++ 、Sublime Text)打开id_rsa.pub这个文件,全选复制里边的内容,然后打开网址,如图:
点击 New SSH key:
Title随便起个名字,将刚才复制的内容粘贴进Key中,然后点击Add SSH Key,这样生成的秘钥就添加完毕了,在今后更新博客,不必每次都输入用户名密码验证登录。
为Hexo安装Git插件
安装 hexo-deployer-git,否则会报 ERROR Deployer not found: git 的错误。
$ npm install hexo-deployer-git --save
至此,环境全部配置完毕,接下来我们讲Hexo的安装,目录结构与常用命令。
Hexo安装与常用命令
Hexo安装
Node和Git都安装好后,首先创建一个文件夹,如blog,用户存放hexo的配置文件,然后进入blog里安装Hexo。执行如下命令安装Hexo:
定位blog安装位置:
$ cd 文件夹路径
$ npm install hexo-cli -g
安装好hexo以后,在终端输入:
$ hexo
若出现下图,说明Hexo安装成功:
初始化博客
$ hexo init //初始化博客
$ npm install //node.js的命令,根据博客的dependencies配置安装所有的依赖包
完成后我们可以看到Blog文件夹下的文件结构是这样的:
主目录结构:
主目录
1 ├── .deploy #需要部署的文件
2 ├── node_modules #Hexo插件
3 ├── public #生成的静态网页文件
4 ├── scaffolds #模板
5 ├── source #博客正文和其他源文件,CNAME也放这里
6 | ├── _drafts #草稿
7 | ├── _posts #文章
8 ├── themes #主题
9 ├── _config.yml #全局配置文件
10 └── package.json
我们经常需要操作的目录为source > _post(文章目录),themes(主题目录),config.yml(全局配置文件)。
主题目录结构:
主目录
1 ├── languages #国际化
2 | ├── default.yml #默认
3 | └── zh-CN.yml #中文
4 ├── layout #布局
5 | ├── _partial #局部的布局
6 | └── _widget #小挂件的布局
7 ├── script #js脚本
8 ├── source #源代码文件
9 | ├── css #CSS
10 | | ├── _base #基础CSS
11 | | ├── _partial #局部CSS
12 | | ├── fonts #字体
13 | | ├── images #图片
14 | | └── style.styl #style.css
15 | ├── fancybox #fancybox
16 | └── js #js
17 ├── _config.yml #主题配置文件
18 └── README.md #主题介绍
Hexo常用命令
$ npm install hexo-cli -g //安装Hexo
$ hexo init //初始化博客
$ npm install //安装依赖包
$ hexo server //本地启动
$ npm update hexo -g //升级
$ hexo new "文件名" //新建文章
$ hexo p //发布
$ hexo generate //生成静态文件
$ hexo generate -watch //监视文件变动
$ hexo deploy //部署
$ hexo d -g //同上
$ hexo g -d //同上
$ hexo new page "pageName" //新建页面
个性化设置
配置博客信息
博客初始化完毕后,我们需要对博客做一些详细的配置信息,以及个性化设置,主要设置的内容有:博客信息,语言、时区、主题样式、博客目录结构、部署设置(deploy)、插件等。
全局配置文件_config.yml
使用sublime Text打开根目录下的config.yml文件,首先我们要对站点信息进行设置:
网站信息:
# Site //站点信息
title : //博客名称
subtilte: //副标题
description: //站点描述信息
ahthor: //作者
language: //语言(zh-CN) *重要
timezone: //时区(Asia/Shanghai) *重要
注意:填写每一项内容时,:后边都要留一个空格再填写内容。
分页设置:
# Pagination
## Set per_page to 0 to disable pagination
per_page:5 //每页显示文章数
pagination_dir: page
主题设置:
# Extensions
## Plugins:https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: next //主题名称
部署设置:
deploy:
type: git //类型
repo: //Github仓库地址
branch: master //项目分支,默认使用主分支即master
设置个性化主题
下载主题
首先找到我们喜欢的主题,本篇文章以Next主题为例,将终端定位到Blog根目录,将Next主题从github clone到本地。
$ cd:d/Blog
$ git clone https://github.com/iissnan/hexo-theme-next themes/next
稍等片刻,Next主题会自动下载到Blog >themes文件夹下。
启用主题
修改config.yml全局配置文件,找到theme字节,修改值为:next
theme: next
修改主题配置文件
配置菜单
打开theme > next >_config.yml,定位到menu,hexo博客框架默认有/home 、/archives、/tags三个一级页面。如果我们要增加其他的页面需要对这里的配置文件进行修改。
menu:
home: / //主页(默认打开)
#categories: /categories //分类
#about: /about //关于
archives: /archives //文章(默认打开)
tags: /tags //标签(默认打开)
#sitemap: /sitemap.xml //站点地图
#commonweal: /404.html //公益404
我们需要增加哪个页面只需要把前边的#注释去掉即可。然后在终端中新建刚才添加的页面
hexo new page "categories" //这里用categories举例
编辑站点的source/categories/index.md,添加
---
title: categories
date: 2017-02-09 17:52:11
type: "categories" //添加类型
comments: false //禁用评论
---
保存后hexo s
,打开http://localhost:4000/查看效果。
设置语言
打开themes >next >languages 找到zh-Hans.yml,重命名为zh-CN.yml,或者将全局配置文件_config.yml的languages设置为zh-Hans也可以。
修改图标
定位到menu_icons,这里储存了页面使用的图标信息,Next主题采用了FontAwesome的图标,直接使用FontAwesome的图标名称即可调用对应的图标文件,关于FontAwesome的详细信息点击这里,选择自己喜欢的图标复制名称粘贴即可。
menu_icons: //目录图标配置
enable: true //是否启用
#KeyMapsToMenuItemKey: NameOfTheIconFromFontAwesome
home: home //主页
about: user //关于
categories: th //分类
schedule: calendar //进度
tags: tags //标签
archives: archive //文章
sitemap: sitemap //站点地图
commonweal: heartbeat
Scheme设置
# Scheme Setting
# ---------------------------------------------------------------
# Schemes
#scheme: Muse
scheme: Mist
#scheme: Pisces
Next主题提供了三种样式,分别为Muse Mist Pisces,将样式前的#注释去掉即可启用该主题,同时只能启用一个。
社交链接
定位到social_icons,修改配置信息。
侧边栏配置
定位倒sidebar,可以设置侧边栏的显示位置(左右),显示方式等。
头像设置
首先将我们的头像图片copy到themses > next > source >images文件夹下,然后打开next主题下的_config.yml文件,定位到avatar。
avatar: /images/头像文件名