hexo出自台湾大学生 tommy351 之手,是一个基于Node.js的静态博客程序,其编译上百篇文字只需要几秒。hexo生成的静态网页可以直接放到GitHub Pages,BAE,SAE等平台上。搭建过程你或许觉得有那么点小繁琐,但一旦搭建完成,写文章是极简单,极舒服的。只需要几个简单命令,你就可以完成一切。
hexo n #写文章
hexo g #生成
hexo d #部署 # 可与hexo g合并为 hexo d -g
下面逐步介绍Hexo+GitHub博客搭建过程。
环境准备
安装Node和Git
注册和配置GitHub
- 首先注册一个GitHub 帐号
- 建立与你用户名对应的仓库,仓库名必须为『your_user_name.github.com』
生成SSH密钥
- 首先设置你的用户名密码:
git config --global user.email "123456789@qq.com" git config --global user.name "cbirdq"
- 生成密钥:
ssh-keygen -t rsa -C "123456789@qq.com"
- 添加SSH公钥到GitHub中:『Account settings -> SSH Keys -> Add SSH Key』
安装
安装hexo
npm install -g hexo
初始化
mkdir blog #创建博客根目录
cd blog #进入根目录
hexo init #初始化
好啦,至此,全部安装工作已经完成!
生成静态页面
在博客根目录下,执行如下命令,生成静态页面至 blog\public\ 目录。
hexo generate
当你修改文章Tag或内容,不能正确重新生成内容,可以删除 hexo\db.json 后重试,还不行就到 public 目录删除对应的文件,重新生成。
本地预览
执行如下命令,启动本地服务,进行文章预览调试。
hexo server
浏览器输入 http://localhost:4000 就可以看到效果。如果4000端口被占用,导致网页无法显示,可以通过以下命令指定其他端口。
hexo server -p 5000
写文章
执行new命令,生成指定名称的文章至 blog\source_posts\postName.md 。
hexo new [layout] "postName" #新建文章
其中layout是可选参数,默认值为post。有哪些layout呢,请到 scaffolds 目录下查看,这些文件名称就是layout名称。当然你可以添加自己的layout,方法就是添加一个文件即可,同时你也可以编辑现有的layout,比如post的layout默认是 hexo\scaffolds\post.md
title: { { title } }
date: { { date } }
tags:
---
请注意,大括号与大括号之间我多加了个空格,否则会被转义,不能正常显示。
我想添加categories,以免每次手工输入,只需要修改这个文件添加一行,如下:
title: { { title } }
date: { { date } }
categories:
tags:
---
postName是md文件的名字,同时也出现在你文章的URL中,postName如果包含空格,必须用”将其包围,postName可以为中文。
注意,所有文件:后面都必须有个空格,不然会报错。
看一下刚才生成的文件 blog\source_posts\postName.md ,内容如下:
title: postName #文章页面上的显示名称,可以任意修改,不会出现在URL中
date: 2013-12-02 15:30:16 #文章生成时间,一般不改,当然也可以任意修改
categories: #文章分类目录,可以为空,注意:后面有个空格
tags: #文章标签,可空,多标签请用格式[tag1,tag2,tag3],注意:后面有个空格
---
这里开始使用markdown语法格式输入你的正文。
photos
在你的文章*.md文件的头上添加 photos 项,然后一行行添加你要展示的照片:
layout: photo
title: 我的阅历
date: 2085-01-16 07:33:44
tags: [hexo]
photos:
- http://bruce.u.qiniudn.com/2013/11/27/reading/photos-0.jpg
- http://bruce.u.qiniudn.com/2013/11/27/reading/photos-1.jpg
经过测试,文件头上的 layout: photo 可以省略。
不想每次都手动添加怎么办?同样的,打开您的 hexo\scaffolds\photo.md
layout: { { layout } }
title: { { title } }
date: { { date } }
tags:
photos:
-
---
然后每次可以执行带layout的new命令生成照片文章:
hexo new photo "photoPostName" #新建照片文章
description
markdown文件头中也可以添加description,以覆盖全局配置文件中的description内容,请参考下文 _config.yml 的介绍。
title: hexo你的博客
date: 2013-11-22 17:11:54
categories: default
tags: [hexo]
description: 你对本页的描述
---
hexo默认会处理全部markdown和html文件,如果不想让hexo处理你的文件,可以在文件头中加入layout: false。
文章摘要
在需要显示摘要的地方添加如下代码即可:
以上是摘要
<!--more-->
以下是余下全文
more以上内容即是文章摘要,在主页显示,more以下内容点击『> Read More』链接打开全文才显示。
文件的编码格式
hexo中所有文件的编码格式均是UTF-8。
主题设置
主题安装
网上有很多开源的主题,基本都托管在github上,安装主题的方法就是一句git命令:
cd blog
git clone https://github.com/iissnan/hexo-theme-next themes/NexT
目录是否是NexT无所谓,只要与_config.yml文件一致即可。
安装完成后,打开 hexo_config.yml ,修改主题为 NexT
theme: NexT
更新主题
cd themes/NexT
git pull