1
2
3
# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

Hexo Configuration下的两行表示hexo文档的相关文档,Docs指的是hexo的文档,Source指的是hexo的GitHub源码

# Site 网站

1
2
3
4
5
6
7
8
9
10
11
12
13
title: Hexo  #网站的名字,会写在hexo generator命令生成后的public文件夹下的index.html文件的title标签里

subtitle: '' #网站的副标题,生成的时候默认为空

description: '' #主要用于SEO,告诉搜索引擎一个关于站点的简单描述,在官方文档中建议在这段描述中增加自己的一

keywords: #网站的关键词,使用半角逗号分隔开多个关键词,关键词对SEO的优化有一定的作用

author: John Doe #顾名思义就是作者,这个也只是署个名而已

language: zh-CN #这里就写了网站使用的语言

timezone: 'Asia/Shanghai' #网站对应的时区,一般情况下不用去刻意配置,会默认使用电脑的时区,但如果发布到其他地方的服务器,可能会使用当地服务器的时区,此时如果有需要用到本电脑的时区就要手动设置时区了,一般中国的时区可以设置为Asia/Shanghai

# URL 网址

1
2
3
4
5
6
7
8
9
url: #网站的网址

permalink: :title/ #文章的永久链接格式,可以在permalink这里配置 也就是文章打开url显示的格式

permalink_defaults:

pretty_urls:
trailing_index: true # 设置为false时会将末尾的index.html去掉
trailing_html: true # 设置为false时会将末尾的.html去掉,对index.html无效

对应上面的年,月,天和标题,我们自己配置时,使用:加上要设置的对应属性,以/分隔,可以配置的有以下内容,

变量 描述
:year 文章的发表年份(4 位数)
:motnth 文章的发表月份(2 位数)
:i_month 文章的发表月份(去掉开头的零)
:i_day 文章的发表日期(去掉开头的零)
:hour 文章发表时的小时(2位数)
:minute 文章发表时的分钟(2位数)
:title 文件名称
:post_title 文章标题
:id 文章ID (not persistent across cache reset)
:category 分类。如果文章没有分类,则是default_ category 配置信息。

比如默认生成的hello-world.md中这里要注意的是,如果使用id的话,在使用hexo clean后重新hexo g会使得id发生改变,将permalink改为:year/:month/:day/:title/:id/使用hexo g构造文件,然后使用hexo clean后重新使用hexo g构造,发现前后两次文章的id是不一样的

除了上面的变量外,也可以使用Font-matter中的值,Font-matter是文章文件最上方以—分隔的区域,用于指定个别文件的变量

参数 描述 默认值
layout 布局
title 标题 文章的文件名
date 建立日期 文件建立日期
updated 更新日期 文件更新日期
comments 开启文章的评论功能 true
tags 标签(不适用于分页)
categories 分类(不适用于分页)
permalink 覆盖文章网址
keywords 仅用于meta标签和Open Graph的关键词(不推荐使用)

#Directory 目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
source_dir: source #存放hexo文章的文件夹,我们写的md文件都放在这个配置对应的文件夹下,默认值是source

public_dir: public #存放hexo g生成的文件,执行hexo g后根目录就会出现这个文件夹,默认值是public

tag_dir: tags #按标签存放文章的目录,默认值是tags,如果我们给文章添加标签,使用hexo g时public文件夹下就会多出一个tags文件夹(根据我们的配置文件夹名不同)

archive_dir: archives #归档文件夹,存放归档文件,默认值为archives

category_dir: categories #分类文件夹,按分类存放的文件,和上面的tags一样,只要在文章中的Font-matter添加了categories就会在使用hexo g构造时出现相应的文件夹

code_dir: downloads/code #Include code 文件夹,source_dir 下的子目录,默认值为downloads/code

i18n_dir: :lang #国际化(i18n)文件夹,默认值:lang

skip_render: #跳过指定文件的渲染,匹配到的文件将会被不做改动复制到public文件夹下,如果路径对应的是我们的文章,那会直接忽略掉该文章

#Writing 文章

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
new_post_name: :title.md #新文章的默认名称,我们是使用hexo new来构造文章的,生成的文章名就是通过这里配置的,默认为:title.md,也就是标题.md

default_layout: post #预设布局,hexo new可以创建三种文件,post/帖子,draft/草稿,page/页面,这里设置默认值在使用hexo new就可以直接创建对应默认类型的文章,设置了post就等同于说在命令行执行hexo new <name>和执行hexo new post <name>是一样的,也可以设置为draft和page

titlecase: false #把标题转换为 title case

external_link:
enable: true #是否在新标签中打开链接
field: site #external_link.enable的配置对当前网站(site)生效或仅对文章(post)生效,默认为site
exclude: '' #需要排除的域名

filename_case: 0 #把文件名称转换为小写(1)或者大写(2),默认不转换(0)

render_drafts: false #否渲染草稿文件,默认为false不渲染

post_asset_folder: false #是否启动资源文件夹,对于我们的网站,如果我们的文章里面有图片,我们可以在source文件夹下建立一个统一的images文件夹来存放图片,但是如果有的文章有很多的资源文件如图片,我们可以通过设置该配置为true,这样在source文件夹下创建文件的同时也会创建一个同名文件夹来存放相应的资源,比如我设置为true,然后执行hexo new newPost

relative_link: false #是否把链接改为与根目录的相对地址,默认为false

future: true #是否显示当前时间之后的文章,默认为true,如果设置为false的话,我们设置的日期如果是未来的日期的话,就不会显示

highlight: #代码块的设置
enable: true #开启代码高亮,默认为true
line_number: true #显示代码的行数,默认为true
auto_detect: false #如果未指定语言,就自动检测,默认为false
tab_replace: '' #用n个空格来代表tab键,如果值为空,则不会代替tab键
wrap: true #是否将代码放在table标签里,默认为true
hljs: false #是否对CSS类使用hljs-*前缀,默认为false

prismjs:
enable: false
preprocess: true
line_number: true
tab_replace: ''

#Home page setting 主页设置

1
2
3
4
index_generator: #index_generator:主页相关的设置
path: '' #path:主页对应的路径,默认为’’,即域名根目录就是主页的路径
per_page: 10 #per_page:每页显示的帖子数,默认为10
order_by: -date #order_by:帖子的排序,默认为-date,即按日期倒序排

#Category & Tag 分类和标签

1
2
3
4
5
default_category: uncategorized #默认分类

category_map: #分类别名

tag_map: #标签别名

#Metadata elements 元数据元素

1
meta_generator: true #是否在页面开头插入下面的meta标签,默认为true

#日期/时间格式

1
2
3
4
5
6
date_format: YYYY-MM-DD #日期格式,默认为YYYY-MM-DD,即年月日

time_format: HH:mm:ss #时间格式,默认为HH:mm:ss,即时分秒

## updated_option supports 'mtime', 'date', 'empty'
updated_option: 'mtime' #启用以后,如果 Front Matter 中没有指定 updated(文件更新日期),post.updated 将会使用 date 的值而不是文件的创建时间,默认值为true

#Pagination 分页

1
2
3
4
per_page: 10 #分页时每页的文章数,如果为0则不分页,默认为10

pagination_dir: page #分页的目录,默认为page,对应于public文件夹下的archives文件夹下的page文件夹,如果只有一页是不会生成这个文件夹的

#Include / Exclude file(s) 包括或不包括目录和文件

1
2
3
4
5
include: #Hexo 默认会忽略隐藏文件和文件夹(包括名称以下划线和 . 开头的文件和文件夹,Hexo 的 _posts 和 _data 等

exclude: #Hexo 会忽略这些文件和目录

ignore: #忽略的文件 要注意的是,这里要写入的是数组,而yaml的数组要用-值表示数组中一个元素或者直接采用js中数组的写法[]

#Extensions 主题

1
2
3
4
5
## Plugins: https://hexo.io/plugins/

## Themes: https://hexo.io/themes/

theme: butterfly # 当前使用的主题名

#Deployment 部署

1
2
3
4
5
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: git
repo: # 库地址
branch: master # 分支名称