hexo你的博客

hexo出自台湾大学生 tommy351 之手,是一个基于Node.js的静态博客程序,其编译上百篇文字只需要几秒。hexo生成的静态网页可以直接放到GitHub Pages,BAE,SAE等平台上。搭建过程你或许觉得有那么点小繁琐,但一旦搭建完成,写文章是极简单,极舒服的。只需要几个简单命令,你就可以完成一切。

hexo n #写文章
hexo g #生成
hexo d #部署 # 可与hexo g合并为 hexo d -g

下面逐步介绍Hexo+GitHub博客搭建过程。

环境准备

安装Node和Git

Node.js 官网
Git 官网

注册和配置GitHub

  1. 首先注册一个GitHub 帐号
  2. 建立与你用户名对应的仓库,仓库名必须为『your_user_name.github.com』

生成SSH密钥

  1. 首先设置你的用户名密码:
    git config --global user.email "123456789@qq.com"
    git config --global user.name "cbirdq"
    
  2. 生成密钥:
    ssh-keygen -t rsa -C "123456789@qq.com"
    
  3. 添加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