前言
上一篇博客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
应用程序的信息。EJS, Stylus 和 Markdown renderer 已默认安装,您可以自由移除。
{
"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_York , Japan , 和 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
$ 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
$ 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
$ 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
$ 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
$ 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
文件夹中,您可以将它们复制到您喜欢的地方。