前言

上一篇博客Github+域名搭建个人主页(个人博客) 写了如何使用GitHub+域名搭建一个静态的个人主页,搭建好之后,就可以使用对应的域名来进行访问了,这篇博客主要是跟大家介绍使用Hexo对自己的个人博客进行优化,管理。

准备工作

Git客户端 : 下载安装,一路默认安装即可
NodeJs: 下载安装 ,一路默认安装即可
验证NodeJs 是否安装成功
Microsoft Windows [版本 10.0.17134.472]
(c) 2018 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>node -v
v11.6.0

C:\Users\Administrator>npm -v
6.5.0-next.0

安装

参考 Hexo官方文档

安装 Hexo

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

$ npm install -g hexo-cli
初始化 Hexo

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

$ hexo init <folder>
$ cd <folder>
$ npm install

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

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

_config.yml

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

package.json

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

package.json
{
 "name": "hexo-site",
 "version": "0.0.0",
 "private": true,
 "hexo": {
 "version": ""
 },
 "dependencies": {
 "hexo": "^3.0.0",
 "hexo-generator-archive": "^0.1.0",
 "hexo-generator-category": "^0.1.0",
 "hexo-generator-index": "^0.1.0",
 "hexo-generator-tag": "^0.1.0",
 "hexo-renderer-ejs": "^0.1.0",
 "hexo-renderer-stylus": "^0.2.0",
 "hexo-renderer-marked": "^0.2.4",
 "hexo-server": "^0.1.2"
 }
}

scaffolds

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

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

source

资源文件夹是存放用户资源的地方。除 _posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。

themes

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

配置

您可以在 _config.yml 中修改大部分的配置。

网站

参数 描述
title 网站标题
subtitle 网站副标题
description 网站描述
author 您的名字
language 网站使用的语言
timezone 网站时区。Hexo 默认使用您电脑的时区。时区列表。比如说:America/New_YorkJapan, 和 UTC 。

其中,description主要用于SEO,告诉搜索引擎一个关于您站点的简单描述,通常建议在其中包含您网站的关键词。author参数用于主题显示文章的作者。

网址

参数 描述 默认值
url 网址
root 网站根目录
permalink 文章的 永久链接 格式 :year/:month/:day/:title/
permalink_defaults 永久链接中各部分的默认值

网站存放在子目录

如果您的网站存放在子目录中,例如 http://yoursite.com/blog,则请将您的 url 设为 http://yoursite.com/blog 并把 root 设为 /blog/

目录

参数 描述 默认值
source_dir 资源文件夹,这个文件夹用来存放内容。 source
public_dir 公共文件夹,这个文件夹用于存放生成的站点文件。 public
tag_dir 标签文件夹 tags
archive_dir 归档文件夹 archives
category_dir 分类文件夹 categories
code_dir Include code 文件夹 downloads/code
i18n_dir 国际化(i18n)文件夹 :lang
skip_render 跳过指定文件的渲染,您可使用 glob 表达式来匹配路径。

提示

如果您刚刚开始接触Hexo,通常没有必要修改这一部分的值。

文章

参数 描述 默认值
new_post_name 新文章的文件名称 :title.md
default_layout 预设布局 post
auto_spacing 在中文和英文之间加入空格 false
titlecase 把标题转换为 title case false
external_link 在新标签中打开链接 true
filename_case 把文件名称转换为 (1) 小写或 (2) 大写 0
render_drafts 显示草稿 false
post_asset_folder 启动 Asset 文件夹 false
relative_link 把链接改为与根目录的相对位址 false
future 显示未来的文章 true
highlight 代码块的设置

相对地址

默认情况下,Hexo生成的超链接都是绝对地址。例如,如果您的网站域名为example.com,您有一篇文章名为hello,那么绝对链接可能像这样:http://example.com/hello.html,它是绝对于域名的。相对链接像这样:/hello.html,也就是说,无论用什么域名访问该站点,都没有关系,这在进行反向代理时可能用到。通常情况下,建议使用绝对地址。

分类 & 标签

参数 描述 默认值
default_category 默认分类 uncategorized
category_map 分类别名
tag_map 标签别名

日期 / 时间格式

Hexo 使用 Moment.js 来解析和显示时间。

参数 描述 默认值
date_format 日期格式 YYYY-MM-DD
time_format 时间格式 H:mm:ss

分页

参数 描述 默认值
per_page 每页显示的文章量 (0 = 关闭分页功能) 10
pagination_dir 分页目录 page

扩展

参数 描述
theme 当前主题名称。值为false时禁用主题
deploy 部署部分的设置

选择主题

在Hexo 主题中选择自己喜欢的主题,下载下来,解压之后,将主题的文件夹复制到 hexo 文件夹中的 theme 文件夹下 ;然后再hexo 根目录下更改_config.yml 文件中的 theme 的值

例如:

theme: hexo-theme-matery

要修改主题中的样式,可根据主题的说明文档 在 主题文件夹中的 _config.yml 文件中修改 或者修改对应的样式文件

Hexo 操作命令

init

新建一个网站。如果没有设置 folder ,Hexo 默认在目前的文件夹建立网站。

$ hexo init [folder]

New

新建一篇文章。如果没有设置 layout 的话,默认使用 _config.yml 中的 default_layout 参数代替。如果标题包含空格的话,请使用引号括起来。

$ hexo new [layout] <title>

generate

生成静态文件。

$ hexo generate
选项 描述
-d,--deploy 文件生成后立即部署网站
-w,--watch 监视文件变动

该命令可以简写为

$ hexo g

publish

发表草稿。

$ hexo publish [layout] <filename>

server

启动服务器。默认情况下,访问网址为: http://localhost:4000/

选项 描述
-p--port 重设端口
-s--static 只使用静态文件
-l--log 启动日记记录,使用覆盖记录格式
$ hexo server

deploy

部署网站。

参数 描述
-g--generate 部署之前预先生成静态文件
$ hexo deploy

该命令可以简写为:

$ hexo d

render

渲染文件。

参数 描述
-o--output 设置输出路径
$ hexo render <file1> [file2] ...

migrate

从其他博客系统 迁移内容

$ hexo migrate <type>

clean

清除缓存文件 (db.json) 和已生成的静态文件 (public)。

在某些情况(尤其是更换主题后),如果发现您对站点的更改无论如何也不生效,您可能需要运行该命令。

$ hexo clean

list

列出网站资料。

$ hexo list <type>

version

显示 Hexo 版本。

$ hexo version

选项

安全模式

在安全模式下,不会载入插件和脚本。当您在安装新插件遭遇问题时,可以尝试以安全模式重新执行。

$ hexo --safe

调试模式

在终端中显示调试信息并记录到 debug.log。当您碰到问题时,可以尝试用调试模式重新执行一次,并 提交调试信息到 GitHub

$ hexo --debug

简洁模式

隐藏终端信息。

$ hexo --silent

自定义配置文件的路径

自定义配置文件的路径,执行后将不再使用 _config.yml

$ hexo --config custom.yml

显示草稿

显示 source/_drafts 文件夹中的草稿文章。

$ hexo --draft

自定义 CWD

自定义当前工作目录(Current working directory)的路径。

$ hexo --cwd /path/to/cwd

服务器

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

$ npm install hexo-server --save

安装完成后,输入以下命令以启动服务器,您的网站会在 http://localhost:4000 下启动。在服务器启动期间,Hexo 会监视文件变动并自动更新,您无须重启服务器。

$ hexo server

如果您想要更改端口,或是在执行时遇到了 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才能访问站点。例如,对于一台使用无线网络的笔记本电脑,除了指向本机的127.0.0.1外,通常还有一个192.168.*.*的局域网IP,如果像上面那样使用-i参数,就不能用127.0.0.1来访问站点了。对于有公网IP的主机,如果您指定一个局域网IP作为-i参数的值,那么就无法通过公网来访问站点。

Pow

Pow 是一个 Mac 系统上的零配置 Rack 服务器,它也可以作为一个简单易用的静态文件服务器来使用。

安装

$ curl get.pow.cx | sh

设置

在 ~/.pow 文件夹建立链接(symlink)。

$ cd ~/.pow
$ ln -s /path/to/myapp

您的网站将会在 http://myapp.dev 下运行,网址根据链接名称而定。

生成文件

使用 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: {{ ('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: {{ ('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: {{ ('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 文件夹中,您可以将它们复制到您喜欢的地方。