Hexo+GitHub Page搭建自己的Blog
什么是Hexo
-
Hexo 是一个简单地、轻量地、基于Node的一个静态博客框架,可以方便的生成静态网页托管在github和Heroku上,引用Hexo作者 @tommy351 的话:
-
快速、简单且功能强大的 Node.js 博客框架。A fast, simple & powerful blog framework, powered by Node.js.
GitHub Pages是什么?
-
GitHub Pages 可以被认为是用户编写的、托管在github上的静态网页。由于它的空间免费稳定, 可以用于介绍托管在github上的Project或者搭建网站。
以下环境为mac下安装。
Hexo安装
需要安装git和Node.js运行环境
git安装
-
mac自带git,如果需要重新安装,可去官网下载
1 | $ git --version |
安装npm
-
基于brew方式安装npm
1 | $ brew install npm |
安装Hexo
1 | $ npm install hexo-cli -g |
npm安装Hexo:参考资料
查看Hexo版本
1 | $ hexo version |
Quick Start
Setup your blog
1 | $ cd ~ |
-
此命令会在当前用户的家目录下创建一个blog目录,并初始化相关文件,如下为初始化的目录结构:
blog目录结构说明
-
scaffolds :模板文件夹,新建文章时,Hexo 会根据 scaffold 来建立文件。Hexo 有三种默认布局: post 、 page 和 draft ,它们分别对应不同的路径。新建文件的默认布局是 post ,可以在配置文件中更改布局。用 draft 布局生成的文件会被保存到 source/_drafts 文件夹。
-
source :资源文件夹是存放用户资源的地方。
-
source/_post :文件箱。除 _posts 文件夹之外,开头命名为 _ (下划线)的文件或者文件夹和隐藏的文件将会被忽略。Markdown文件会被解析并放到 public 文件夹。
-
themes :主题 文件夹。Hexo 会根据主题来生成静态页面。我们可以将自己的主题放到该目录下,然后在_config.yml中修改默认的主题即可。
-
themes/landscape :默认的皮肤文件夹
-
_config.yml :全局的配置文件,每次更改要重启服务。
_config.yml简介
1 | # Hexo Configuration |
注意:以下所有命令,都必须在blog目录下执行。
Start the server
1 | $ hexo server |
-
我们可以通过浏览器访问http://localhost:4000/,就可以看到blog的页面了。
-
创建文件、生成静态文件以及发布到github,都不需要启动服务,启动服务的目的仅是为了能在本地看到效果。
-
hexo server
==hexo s
Create a new post
1 | $ hexo new "Hello Hexo" |
-
创建好的文件基于makedown语法,可以使用sublime或者atom编辑器,进行编辑与管理。
-
编辑完成后不需要执行
hexo generate
命令即可在浏览器中查看效果,但是修改了主题内容,有时会不生效,需要先生成静态文件才能看到最终效果。 -
hexo new
==hexo n
Generate static files
1 | $ hexo generate |
-
该命令用于将makedown文件转换为静态html文件,并放到public文件夹下。
-
可以使用
hexo clean
命令来删除public文件夹,之后再使用hexo generate
来重新生成静态文件。 -
hexo generate
==hexo g
Clean static files
1 | $ hexo clean |
-
hexo clean
==hexo cl
主题
更换主题
-
github上有许多技术达人为Hexo制作的主题,可以clone到本地,并拷贝到themes文件夹下,然后修改_config.yml中的theme属性,修改主题需要重启Hexo才能生效。
-
比如博主使用主题为yilia下载地址:
1 | $ cd ~/blog |
-
更新主题时,在themes/yilia目录下执行
git pull
。
添加资源
-
可以在当前主题的source目录下放入自己的资源,执行
hexo generate
命令时,会将主题中的source目录下的内容拷贝到public目录下。 -
但是这样做如果更换主题,则资源就失效了,所以一般是在source目录下创建资源文件,执行
hexo generate
命令时,会将source目录下的内容拷贝到public目录下。
发布到Github
安装hexo的git发布包
1 | $ npm install hexo-deployer-git -S |
创建SSH密钥
-
创建密钥可以在执行发布时不需要每次都输入用户名和密码,具体创建方法查看如下资料:
Deploy to remote sites
-
因为使用GitPage,所以需要申请一个Github帐号,并创建一个仓库,仓库名称为"your_name.github.io"。
-
创建好仓库后,在_config.yml中按上文中的内容配置好deploy属性。
-
执行如下命令,会将public下的文件发布到该仓库中,一般执行deploy前先执行clean和generate保证文件最新。
-
访问https://hanqunfeng.github.io,查看blog页面。
1 | $ hexo clean |
-
hexo deploy
==hexo d