Hexo的安装配置和搭建
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用户
第一步,去 nodejs 官网 https://nodejs.org 看最新的版本号;
第二步,添加源后安装
重点来了,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
最后验证一下,执行: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/