上一节:分分钟部署一个Hexo环境
一旦安装了Hexo,运行以下命令初始化Hexo在目录
$ hexo init <folder>
$ cd <folder>
$ cnpm install
一旦初始化,你的项目文件夹是这个样子:
.
├── _config.yml
├── package.json
├── scaffolds
├── scripts
├── source
| ├── _drafts
| └── _posts
└── themes
下面依次介绍上面各个文件或者目录的用途:
_config.yml
站点配置文件,很多全局配置都在这个文件中。package.json
应用数据。从它可以看出hexo版本信息,以及它所默认或者说依赖的一些组件。scaffolds
模版文件。当你创建一篇新的文章时,hexo会依据模版文件进行创建,主要用在你想在每篇文章都添加一些共性的内容的情况下。scripts
放脚本的文件夹, 就是放js文件的地方source
这个文件夹就是放文章的地方了,除了文章还有一些主要的资源,比如文章里的图片,文件等等东西。这个文件夹最好定期做一个备份,丢了它,整个站点就废了。themes
主题文件夹。
站点配置文件,你可以在这里进行大多数配置。
配置 | 描述 |
---|---|
title | 站点名字,也就是html的title,会显示在浏览器标签上 |
subtitle | 站点副标题,会显示在首页上,可以不填 |
description | 站点描述,可以不填 |
author | 作者名称 |
language | 语言 |
timezone | 站点时区,默认是电脑时间 |
配置 | 描述 |
---|---|
url | 站点网址 |
root | 站点根目录 |
permalink | 文章的永久网址链接,默认是:year/:month/:day/:title/ ,指的什么意思?比如我一篇叫『love』的文章是在2012年1月1日写的,那么它对应的链接就是https://yoururl/2012/01/01/love/ |
permalink_default |
如果网址是次级目录,比如:
https://example.com/blog
,那么就要设置url为https://example.com/blog
,并且root要设置为/blog/
。
配置 | 描述 |
---|---|
source_dir | source目录,默认值为source |
public_dir | public目录,静态网站生成的地方,默认值为public |
tag_dir | tag目录 |
archive_dir | Archive目录 |
category_dir | 分类目录 |
code_dir | 代码目录 |
i18n_dir | i18n目录 |
skip_render | 不想被渲染的路径 |
配置 | 描述 |
---|---|
new_post_name | 新建文章默认文件名,默认值为 :title.md,比如你执行命令hexo new hello,就会默认在_post目录下创建一个hello.md的文件 |
default_layout | 默认布局 |
titlecase | |
external_link | 在新标签中打开一个外部链接,默认为true |
filename_case | 转换文件名,1代表小写;2代表大写;默认为0,意思就是创建文章的时候,是否自动帮你转换文件名,默认就行,意义不大 |
render_drafts | 是否渲染_drafts目录下的文章,默认为false |
post_asset_folder | 是否启用Asset Folder,默认为false,至于什么是Asset Folder,后面有讲解 |
relative_link | 使链接相对于根文件夹,默认false |
future | 是否显示未来日期文章,默认为true |
highlight | 代码块设置 |
配置 | 描述 |
---|---|
default_category | 默认分类,默认为无分类,当然你可以设置一个默认分类。 |
category_map | 分类缩略名 |
tag_map | 标签缩略名 |
Hexo使用的Moment.js来处理时间的。
配置 | 描述 |
---|---|
date_format | 日期格式,默认为MMM D YYYY,一般我们喜欢使用YYYY-MM-DD的格式,其他格式模版可以查看Moment.js |
time_format | 时间格式,默认为H:mm:ss |
配置 | 描述 |
---|---|
per_page | 一页显示多少篇文章,0 为不分页,默认值为 10 |
pagination_dir | 分页目录,默认值为page |
配置 | 描述 |
---|---|
theme | 主题配置,此处填上主题名就OK了,当然在themes目录下一定要有你配置的主题文件夹 |
deploy | 部署配置,将本地public目录也就是网站部署到服务器上的配置 |
应用数据,默认安装了 EJS
,Stylus
和 Markdown
来渲染。如果你不需要可以卸载它们。
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"
}
}
脚手架文件夹。当你创建一个新文章,Hexo基于scaffolds
文件夹里的类型来创建。
脚本文件夹。扩展Hexo最简单的方法,它会自动执行这个文件夹下的JavaScript文件。
$ hexo init [folder]
初始化一个网站。如果没有提供folder
,Hexo会在当前目录设置网站。
$ hexo new [layout] <title>
创建一篇文章,如果不指定layout,那么就使用_config.yml
中default_layout
的值,标题中如果有空格,将整个title
放到引号中。
比如,hexo new "hello world"
创建一篇叫hello world的文章。
$ hexo generate
生成静态文件:
选项 | 描述 |
---|---|
-d , --deploy |
生成完后直接部署 |
-w , --watch |
监控文件的改变 |
$ hexo publish [layout] <filename>
发布为草稿
$ hexo server
启动一个本地服务,默认情况下访问 https://localhost:4000/
选项 | 描述 |
---|---|
-p , --port |
指定端口 |
-s , --static |
仅服务静态文件 |
-l , --log |
开启日志 |
$ hexo deploy
部署你的站点
选项 | 描述 |
---|---|
-g , --generate |
表示在部署前先重新生成一下站点 |
$ hexo render <file1> [file2] ...
渲染文件
选项 | 描述 |
---|---|
-o , --output |
输出到指定文件,我没用过 |
$ hexo migrate <type>
迁移到其他模块的命令。
$ hexo clean
删除缓存文件db.json
以及生成的public目录,当你修改了某些样式或者配置时,如果发现hexo g
后也没有反应,就可以执行一下这个命令。
$ hexo list <type>
列出所有路由
$ hexo version
显示hexo的版本信息到控制台
$ hexo --safe
安全模式,使所有插件和脚本不生效
$ hexo --debug
日志详细信息输出到终端。
$ hexo --silent
静默模式,不在终端上显示任何信息
$ hexo --config custom.yml
使用一个自定义配置文件替换默认_config.yml
$ hexo --draft
显示草稿文章(位于source/_drafts
目录下)
$ hexo --cwd /path/to/cwd
自定义当前工作目录路径,假如你没在工作目录下,可以使用这个命令指定一下工作目录路径
下一节:开始写作吧