文章目录
  1. 1. 绪论
    1. 1.1. Hexo是啥箇物事
    2. 1.2. Hexo由边个开发
    3. 1.3. 出现问题谁背锅
  2. 2. 搭建
    1. 2.1. 安装Node.js
    2. 2.2. 安装Git
    3. 2.3. 安装Hexo
  3. 3. 起飞
    1. 3.1. 部署前戏
    2. 3.2. 常用命令
    3. 3.3. 标签插件
    4. 3.4. 绑定域名
    5. 3.5. 七牛图床
    6. 3.6. 更多信息
  4. 4. 编辑
    1. 4.1. 安装Sublime
    2. 4.2. 安装Package Control
    3. 4.3. 安装Markdown & Monokai
    4. 4.4. 配置Sublime
    5. 4.5. Markdown语法
  5. 5. 主题
    1. 5.1. 安装
    2. 5.2. 启用
    3. 5.3. 配置
    4. 5.4. 公式
    5. 5.5. 评论
    6. 5.6. 支持
  6. 6. 参考

Welcome to Hexo! Check documentation for more info.

以上一行字,表明我转投了Hexo的怀抱。

最初用的csdn,感觉自由度过低(不能任意DIY),很是不爽;
后来用飞行员的衡天主机搭了个WordPress,然而维护太繁琐。
累觉不爱的我听从Smoogle用了Hexo,现在想来静态blog也是极好。
Markdown写博文,这才符合我这种屌丝码农的身份嘛……

绪论

Hexo是啥箇物事

Hexo是一个快速、简洁且高效的博客框架。
Hexo使用Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

Hexo由边个开发

Hexo用Node.js开发,作者是台湾大学生tommy351

出现问题谁背锅

如果您在使用过程中遇到问题,请查看问题解答,或者在GitHubGoogle Group上正面刚作者。

搭建

安装Node.js

Node.js官网下载相应平台最新版本,安装之。

安装Git

  • Windows:下载并安装git.
  • Mac:使用HomebrewMacPorts或下载安装程序
  • Linux (Ubuntu, Debian):$ sudo apt-get install git-core
  • Linux (Fedora, Red Hat, CentOS):$ sudo yum install git-core

安装Hexo

笔者以Windows为例

  1. 打开Git Bash,执行$ npm install -g hexo
  2. $ cd$ ls命令,进入一个文件夹作为Hexo的本地存储区域
  3. 执行$ hexo init
  4. 执行$ npm install

新建完成后,指定文件夹的目录如下:

1
.
├── _config.yml
├── package.json
├── scaffolds
├── scripts
├── source
│   ├── _drafts
│   └── _posts
└── themes

其实到这里已经差不多了,剩下的只是如何去编辑、查看、发布。

起飞

部署前戏

  1. 修改\_config.yml的deploy部分,注意你在此处用的repository必须名为your_user_name.github.io(忽略大小写)
1
deploy:
  type: git
  repository: https://github.com/ChouUn/chouun.github.io.git
  branch: master
  1. 执行$ npm install hexo-deployer-git --save安装部署插件
  2. 执行$ hexo d -g进行部署
  3. 打开http://your_user_name.github.io察看效果

ps. 新版本的hexo已经不再支持github,被新的git取代了。
pss. 过程中可能要求你调用这两个命令

1
2
$ git config --global user.email "chouunsoft@gmail.com"
$ git config --global user.name "ChouUn"

psss. 为了避免命名空间冲突,每个用户对应唯一一个github.io,请对自己负责不要乱取名字

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
### 完整命令
$ hexo new "My New Post" #新建文章
$ hexo new page "pageName" #新建页面
$ hexo generate #生成页面
$ hexo server #运行服务
$ hexo deploy #部署博客
$ hexo clean #清除缓存

### 复合命令
$ hexo server --generate #生成并运行
$ hexo deploy --generate #生成并部署

### 缩写命令
$ hexo n # hexo new
$ hexo g # hexo generate
$ hexo s # hexo server
$ hexo d # hexo deploy
$ hexo s -g # hexo server -generate
$ hexo d -g # hexo deploy -generate

一般使用$ hexo n新建文章,然后$ hexo s -g实时察看效果,最后$ hexo d -g部署到github上。
ps. $ hexo server -s可以运行静态服务,以确认生成是否成功,如果有异步,$ hexo clean以后再$ hexo d -g一次。

标签插件

They’re ported from Octopress and can help you insert specific contents in posts quickly.

译:这些功能是沿袭Octopress,以便你快速插入特殊内容。

  1. 对书籍的引用

    露と落ち、露と消えにし、我が身かな、浪速のことも、夢のまた夢。

    Toyotomi Hideyoshi辞世の句
    1
    {% blockquote Toyotomi Hideyoshi, 辞世の句 %}
    露と落ち、露と消えにし、我が身かな、浪速のことも、夢のまた夢。
    {% endblockquote %}
  2. 对网文的引用

    [範例]【WB】減少洩漏、提高效率、數據系統
    雖然我的系統很舊了,不過看最近在研究這東西的人還不少

    1
    {% blockquote Weberkkk http://forums.wasabistudio.ca/viewtopic.php?t=23408 %}
    [範例]【WB】減少洩漏、提高效率、數據系統
    雖然我的系統很舊了,不過看最近在研究這東西的人還不少
    {% endblockquote %}
  3. 代码块

    helloworldview raw
    1
    2
    3
    4
    5
    6
    7
    #include <iostream>
    using namespace std;

    int main() {
    cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    return 0;
    }
    1
    {% include_code helloworld lang:cpp helloworld.cpp %}

绑定域名

如果有自己的域名,在\Hexo\source内创建一个文件名为CNAME(没有后缀)的文件,在里面加入自己的域名,如:xuzhenyang.com,部署后就能在浏览器里进入自己的域名看到自己的博客啦~

CNAME文件,起到的只是一个跳转作用。此处利用chrome右键审核元素 -> Network,勾上保留日志Preserve log,打开自己的blog,你会发现一个Method为GET、Status为301的文件。

1
Remote Address:103.245.222.133:80
Request URL:http://chouun.github.io/
Request Method:GET
Status Code:301 Moved Permanently (from cache)

Date:Fri, 07 Aug 2015 07:59:18 GMT
Location:http://fateud.com/
Server:GitHub.com

显然你需要一个自己的域名,不然填什么都是为别人做嫁衣。我的fateud.com是从狗爹(GoDaddy)上入的。

  1. win + R输入cmd回车,输入ping your_user_name.github.io回车,得知自己ip是103.245.222.133
  2. 登录DNSPod,添加你的域名,并添加两个A记录,名为@www,记录值为ip,保存
  3. 登录GoDaddy,点击My Account,选择你的域名,在SETTINGS里,管理Nameservers,选择Custom,添加记录f1g1ns1.dnspod.netf1g1ns2.dnspod.net
  4. 修改CNAME,为你的域名,不需要www等开头,如
  5. 坐等解析更新,不用心急,可以ping你的域名,判断是否成功。
  6. 有些人可能注意到了mxbiz1.qq.com之类的,网站邮件收发,我采用了腾讯的企业邮箱

七牛图床

图片容易拖慢博客的速度,加上github在国内访问时好时坏,同时为了方便博客的迁移,所以用上了七牛图床。七牛支持防盗链、日志,且自带处理功能,以完成水印、缩放、裁剪,甚至支持用户的深度定制。
每月免费额度:存储空间10GB、下载流量10GB、10万次PUT请求、100万次GET请求。不得不说是相当优厚的条件,还可以通过七牛邀请来获取额外额度。顺便提及一下「key-value 存储系统」。

Q:七牛云存储支持目录或文件夹概念么?
A:七牛云存储的服务端是一个 key-value 系统,而非树形结构,因此也没有“目录”或者“文件夹”的概念。
其中,value 是用户上传到七牛云存储的文件,key 是一个用户自定义的字符串,用于在服务端标识这个 value 这个文件。一个 key 对应一个 value,因此,在每个空间(Bucket)中,key 必须是唯一的。
key 中可以包含斜杠“/”,让你感觉起来像目录结构,比如 “a/b/c/d.txt” 这个 key,在服务端只对应一个文件,但它看起来像 a 目录下的 b 目录下的 c 目录下的文件 d.txt。实际上,服务端是不存在 a、b、c 三个目录的,也没法创建目录。

  1. 执行$ npm install hexo-qiniu-sync --save安装七牛插件
  2. 对七牛进行设置,详见gyk001/hexo-qiniu-sync;ak和sk参见密钥 - 账号设置 - 七牛云存储,要注意空间不能是private的,被坑了很久
  3. 运行$ hexo qiniu s进行第一次同步,/hexo下会出现一个与local_dir属性同名的文件夹,里面的分类你懂的
  4. 在文章中使用以下标签插入图片
    1
    {% qnimg exam.png title:图片标题 alt:图片说明 'class:class1 class2' %}

ps. 第二步中的urlPrefix因人而异,比如我是http://7xjw62.com5.z0.glb.clouddn.com/,所以你们别被坑了
pss. 因为对$ hexo deploy的支持尚有问题,我们需要手动进行上传..

更多信息

Writing
Generating
Server
Deployment
Tag Plugins

编辑

安装Sublime

个人喜欢用稳定的Sublime 2,下载了官方原版(无限试用期)。

安装Package Control

按下Control + BackQuote调出Console,键入一下代码并回车。所谓BackQuote就是~键中的反引号。

  • sublime 2
1
import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')
  • sublime 3
1
import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

若是安装成功,重启后能在Preferences -> Package Settings中找到Package Control

安装Markdown & Monokai

  1. 按下Control + Shift + P,键入Package Control: install Package回车,键入Markdown Extended回车,即可安装该Package。
  2. 同样操作,安装Monokai Extended

配置Sublime

  1. 打开Preferences -> Settings - User,在一对{}内的开头添加以下语句:

    1
    "color_scheme": "Packages/Monokai Extended/Monokai Extended Bright.tmTheme",
    "theme": "Soda Dark.sublime-theme",
  2. 勾上View -> Syntax -> Markdown Extended

  3. 重启之,随便开个.md文件看看高亮效果,下图仅供参考。

Markdown语法

因为篇幅有限,对于md的语法部分,原谅我不予赘述。

  1. 简体中文: http://wowubuntu.com/markdown/
  2. 繁体中文: http://markdown.tw/
  3. 英文原版: http://daringfireball.net/projects/markdown/syntax
  4. 密集排版: http://www.applecho.com/markdown-guide/
  5. 飞行员版: http://idlepilot.com/2015/07/12/Markdown常用语法/

主题

Jacman是为Hexo设计的一款清新且具有响应式的主题,拥有更丰富的特性并支持了很多的国内服务。Jacman始于Pacman修改而来。

安装

1
$ git clone https://github.com/wuchong/jacman.git themes/jacman

Jacman 需要 Hexo 2.7 及以上版本

启用

修改博客根目录下的配置文件_config.yml,把theme的值修改为 jacman.

配置

修改/themes/jacman/_config.yml中的配置。通过配置指南wiki了解更多

公式

$\frac{\partial u}{\partial t}
= h^2 \left(
\frac{\partial^2 u}{\partial x^2} +
\frac{\partial^2 u}{\partial y^2} +
\frac{\partial^2 u}{\partial z^2}
\right)$
以上公式由以下代码生成,调用了$Mathjax$的接口

1
$\\frac{\\partial u}{\\partial t}
= h^2 \\left(
\\frac{\\partial^2 u}{\\partial x^2} +
\\frac{\\partial^2 u}{\\partial y^2} +
\\frac{\\partial^2 u}{\\partial z^2}
\\right)$

此功能需要在配置里修改如下项mathjax: true,抑或在每个文章中手动添加。
用一对$$会单独占用一行,用一对$会作为内容的顺延。

评论

该主题自带disqus和duoshuo支持,把shortname填上去即可。

1
#### Comment
duoshuo_shortname: fateud ## e.g. wuchong   your duoshuo short name.
disqus_shortname: chouun  ## e.g. wuchong   your disqus short name.

支持

更多功能与信息请查阅:Jacman官网

参考

文档 | Hexo
hexo你的博客 | 不如
Hello Hexo | 飞行员手册
Daring Fireball: Markdown Syntax Documentation
配置Sublime Text使用Markdown,语法高亮,生成HTML_技术党
Sublime Text 2 入门及技巧 | Lucifr
MarkdownEditing:Sublime Text 2 的 Markdown 利器 | Lucifr

文章目录
  1. 1. 绪论
    1. 1.1. Hexo是啥箇物事
    2. 1.2. Hexo由边个开发
    3. 1.3. 出现问题谁背锅
  2. 2. 搭建
    1. 2.1. 安装Node.js
    2. 2.2. 安装Git
    3. 2.3. 安装Hexo
  3. 3. 起飞
    1. 3.1. 部署前戏
    2. 3.2. 常用命令
    3. 3.3. 标签插件
    4. 3.4. 绑定域名
    5. 3.5. 七牛图床
    6. 3.6. 更多信息
  4. 4. 编辑
    1. 4.1. 安装Sublime
    2. 4.2. 安装Package Control
    3. 4.3. 安装Markdown & Monokai
    4. 4.4. 配置Sublime
    5. 4.5. Markdown语法
  5. 5. 主题
    1. 5.1. 安装
    2. 5.2. 启用
    3. 5.3. 配置
    4. 5.4. 公式
    5. 5.5. 评论
    6. 5.6. 支持
  6. 6. 参考