Hexo概述

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

安装

安装 Hexo 相当简单。然而在安装前,您必须检查电脑中是否已安装下列应用程序:

  • Node.js
  • Git

如果您的电脑中已经安装上述必备程序,那么恭喜您!接下来只需要使用 npm 即可完成 Hexo 的安装。

$ npm install -g hexo-cli

如果您的电脑中尚未安装所需要的程序,请根据以下安装指示完成安装。

Mac 用户

您在编译时可能会遇到问题,请先到 App Store 安装 Xcode,Xcode 完成后,启动并进入 Preferences -> Download -> Command Line Tools -> Install 安装命令行工具。

安装 Git

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

Windows 用户

下载git for windows会比较缓慢,请耐心等待一下。或者可以去第三方应用商店下载。

安装 Node.js

安装 Node.js 的最佳方式是使用 nvm。

cURL:

$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh

Wget:

$ wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

或者

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash

安装完成后,重启终端并执行下列命令即可安装 Node.js。

$ nvm install stable

Windows 用户

对于windows用户来说,建议使用安装程序进行安装。安装时,请勾选Add to PATH选项。

另外,您也可以使用Git Bash,这是git for windows自带的一组程序,提供了Linux风格的shell,在该环境下,您可以直接用上面提到的命令来安装Node.js。打开它的方法很简单,在任意位置单击右键,选择“Git Bash Here”即可。

由于Hexo的很多操作都涉及到命令行,您可以考虑始终使用Git Bash来进行操作。

Ubuntu用户

  1. 第一步,去 nodejs 官网 https://nodejs.org 看最新的版本号;

  2. 第二步,添加源后安装
    重点来了,nodejs 的每个大版本号都有相对应的源,比如这里的 10.x.x版本的源是https://deb.nodesource.com/setup_10.x。

    所以在终端执行:

    $ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

    或者

    $ curl -sL https://deb.nodesource.com/setup_10.x | bash

    稍等片刻,源已经添加完毕,再执行:

    $ sudo apt-get install -y nodejs

    顺带一提,如果你要安装12.x.x 的版本,只需要修改添加源地址中的数字即可,比如:

    $ curl -sL https://deb.nodesource.com/setup_12.x | bash

  3. 最后验证一下,执行:nodejs -v 即可出现刚才安装的版本号。

    $ nodejs -v

安装 Hexo

所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。

$ npm install -g hexo-cli

Hexo初始化

安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。

$ hexo init

$ cd

$ npm install

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

.
├── _config.yml
├── package.json
├── scaffolds
├── source
|   ├── _drafts
|   └── _posts
└── themes

_config.yml

网站的 配置 信息,您可以在此配置大部分的参数。

package.json

应用程序的信息。EJS, Stylus 和 Markdown renderer 已默认安装,您可以自由移除。

scaffolds

模版 文件夹。当您新建文章时,Hexo 会根据 scaffold 来建立文件。

Hexo的模板是指在新建的markdown文件中默认填充的内容。例如,如果您修改scaffold/post.md中的Front-matter内容,那么每次新建一篇文章时都会包含这个修改。

source

资源文件夹是存放用户资源的地方。除 _posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。

Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。

themes

主题 文件夹。Hexo 会根据主题来生成静态页面。

更详细介绍请参考此处

服务器

hexo-server

Hexo 3.0 把服务器独立成了个别模块,您必须先安装 hexo-server 才能使用。

$ npm install hexo-server –save

安装完成后,输入下面的命令以启动服务器

$ hexo server

您的网站会在 http://localhost:4000 下启动。在服务器启动期间,Hexo 会监视文件变动并自动更新,您无须重启服务器。

如果您想要更改端口,或是在执行时遇到了 EADDRINUSE 错误,可以在执行时使用 -p 选项指定其他端口,如下:

$ hexo server -p 5000

静态模式

在静态模式下,服务器只处理 public 文件夹内的文件,而不会处理文件变动,在执行时,您应该先自行执行 hexo generate,此模式通常用于生产环境(production mode)下。

$ hexo server -s

自定义 IP

服务器默认运行在 0.0.0.0,您可以覆盖默认的 IP 设置,如下:

$ hexo server -i 192.168.1.1

指定这个参数后,您就只能通过该IP才能访问站点。如果您指定一个局域网IP作为-i参数的值,那么就无法通过公网来访问站点。

生成文件

使用 Hexo 生成静态文件快速而且简单。

$ hexo generate

监视文件变动

Hexo 能够监视文件变动并立即重新生成静态文件,在生成时会比对文件的 SHA1 checksum,只有变动的文件才会写入。

$ hexo generate –watch

完成后部署

您可执行下列的其中一个命令,让 Hexo 在生成完毕后自动部署网站,两个命令的作用是相同的。

$ hexo generate –deploy

$ hexo deploy –generate

简写

上面两个命令可以简写为

$ hexo g -d

$ hexo d -g

部署

Hexo 提供了快速方便的一键部署功能,让您只需一条命令就能将网站部署到服务器上。

$ hexo deploy

在开始之前,您必须先在 _config.yml 中修改参数,一个正确的部署配置中至少要有 type 参数,例如:

deploy:
  type: git

您可同时使用多个 deployer,Hexo 会依照顺序执行每个 deployer。

deploy:
- type: git
  repo:
- type: heroku
  repo:

缩进

YAML依靠缩进来确定元素间的从属关系。因此,请确保每个deployer的缩进长度相同,并且使用空格缩进。

Git

安装 hexo-deployer-git。

$ npm install hexo-deployer-git --save

修改配置。

deploy:
  type: git
  repo: <repository url>
  branch: [branch]
  message: [message]

参数            描述
repo         库(Repository)地址
branch         分支名称。如果您使用的是 GitHub 或 GitCafe 的话,程序会尝试自动检测。
message     自定义提交信息 (默认为 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }})

Heroku

安装 hexo-deployer-heroku。

$ npm install hexo-deployer-heroku --save

修改配置。

deploy:
  type: heroku
  repo: <repository url>
  message: [message]

参数             描述
repo         Heroku 库(Repository)地址
message     自定提交信息 (默认为 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }})

Rsync

安装 hexo-deployer-rsync。

$ npm install hexo-deployer-rsync --save

修改配置。

deploy:
  type: rsync
  host: <host>
  user: <user>
  root: <root>
  port: [port]
  delete: [true|false]
  verbose: [true|false]
  ignore_errors: [true|false]

参数            描述                     默认值
host         远程主机的地址     
user         使用者名称     
root         远程主机的根目录     
port         端口     22
delete         删除远程主机上的旧文件     true
verbose     显示调试信息                 true
ignore_errors     忽略错误             false

rsync部署模块的工作方式

需要注意的是,要求您提供的实际上是一个能通过SSH登陆远程主机的Linux用户。Hexo会自动处理关于rsync使用的一切操作。因此,您需要在远程主机上为您的Hexo站点建立一个用户,并允许其通过SSH登陆。不过,这里的port,的确是指rsync监听的端口,请确保防火墙打开了该端口。

OpenShift

安装 hexo-deployer-openshift。

$ npm install hexo-deployer-openshift --save

修改配置。

deploy:
  type: openshift
  repo: <repository url>
  message: [message]

参数            描述
repo         OpenShift 库(Repository)地址
message     自定提交信息 (默认为 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }})

FTPSync

安装 hexo-deployer-ftpsync。

$ npm install hexo-deployer-ftpsync --save

修改配置。

deploy:
  type: ftpsync
  host: <host>
  user: <user>
  pass: <password>
  remote: [remote]
  port: [port]
  ignore: [ignore]
  connections: [connections]
  verbose: [true|false]

参数            描述                     默认值
host         远程主机的地址     
user         使用者名称     
pass         密码     
remote         远程主机的根目录             /
port         端口                        21
ignore         忽略的文件或目录     
connections     使用的连接数             1
verbose     显示调试信息                 false

FTP部署可能出现的问题

您可能需要预先通过其他方式将所有文件上传到远程主机中。否则初次使用ftpsync插件就可能出现报错。另外,由于FTP协议的特征,它每传送一个文件就需要一次握手,相对速度较慢。

其他方法

Hexo 生成的所有文件都放在 public 文件夹中,您可以将它们复制到您喜欢的地方。

结语

更多详细配置请移步此处:https://hexo.io/zh-cn/docs/