配置

您可以在 _config.yml备用配置文件 中修改网站设置。

网站

设置 描述
title 您网站的标题
subtitle 您网站的副标题
description 您网站的描述
keywords 您网站的关键词。支持多个值。
author 您的姓名
language 您网站的语言。使用 2 个字母的 ISO-639-1 代码 或者可选地使用 它的变体。默认是 en
timezone 您网站的时区。Hexo 默认使用您计算机上的设置。您可以找到可用时区的列表 这里。一些例子是 America/New_YorkJapanUTC

URL

设置 描述 默认
url 您网站的 URL,必须以 http://https:// 开头
root 您网站的根目录 url 的路径名
permalink 文章的 永久链接 格式 :year/:month/:day/:title/
permalink_defaults 永久链接中每个段的默认值
pretty_urls permalink 变量重写为漂亮的 URL
pretty_urls.trailing_index 结尾的 index.html,设置为 false 以删除它 true
pretty_urls.trailing_html 结尾的 .html,设置为 false 以删除它(不适用于结尾的 index.html true
网站在子目录中

如果您的网站位于子目录中(例如 http://example.org/blog),请将 url 设置为 http://example.org/blog 并将 root 设置为 /blog/

示例

# e.g. page.permalink is http://example.com/foo/bar/index.html
pretty_urls:
trailing_index: false
# becomes http://example.com/foo/bar/

目录

设置 描述 默认
source_dir 源文件夹。您的内容存储在那里 source
public_dir 公共文件夹。静态网站将在那里生成 public
tag_dir 标签目录 tags
archive_dir 归档目录 archives
category_dir 分类目录 categories
code_dir 包含代码目录(source_dir 的子目录) downloads/code
i18n_dir i18n 目录 :lang
skip_render 将被原始复制到 public 的路径,无需渲染。您可以使用 全局表达式 进行路径匹配。

示例

skip_render: "mypage/**/*"
# will output `source/mypage/index.html` and `source/mypage/code.js` without altering them.

## This also can be used to exclude posts,
skip_render: "_posts/test-post.md"
# will ignore the `source/_posts/test-post.md`.

写作

设置 描述 默认
new_post_name 新文章的文件名格式 :title.md
default_layout 默认布局 post
titlecase 将标题转换为标题大小写? false
external_link 在新标签页中打开外部链接?
external_link.enable 在新标签页中打开外部链接? true
external_link.field 仅适用于整个 sitepost site
external_link.exclude 排除主机名。在适用时指定子域,包括 www []
filename_case 将文件名转换为 1 小写;2 大写 0
render_drafts 显示草稿? false
post_asset_folder 启用 资产文件夹 false
relative_link 使链接相对于根文件夹? false
future 显示未来的文章? true
syntax_highlighter 代码块语法高亮设置,请参阅 语法高亮 部分以获取使用指南 highlight.js
highlight 代码块语法高亮设置,请参阅 Highlight.js 部分以获取使用指南
prismjs 代码块语法高亮设置,请参阅 PrismJS 部分以获取使用指南

主页设置

设置 描述 默认
index_generator 生成文章存档,由 hexo-generator-index 提供支持
index_generator.path 您博客首页的根路径 ''
index_generator.per_page 每页显示的文章数。 10
index_generator.order_by 文章排序。默认情况下按降序日期(新到旧)排序。 -date
index_generator.pagination_dir URL 格式,请参阅下面的 分页 设置 page

分类和标签

设置 描述 默认
default_category 默认分类 uncategorized
category_map 覆盖分类别名
tag_map 覆盖标签别名

示例

category_map:
"yesterday's thoughts": yesterdays-thoughts
"C++": c-plus-plus

日期/时间格式

Hexo 使用 Moment.js 处理日期。

设置 描述 默认
date_format 日期格式 YYYY-MM-DD
time_format 时间格式 HH:mm:ss
updated_option 当 front-matter 中未提供时要使用的 updated mtime
updated_option

updated_option 控制当 front-matter 中未提供时 updated 的值

  • mtime:使用文件修改日期作为 updated。这是 Hexo 从 3.0.0 版本开始的默认行为
  • date:使用 date 作为 updated。通常与 Git 工作流程一起使用,因为文件修改日期可能不同。
  • empty:当未提供时,直接删除 updated。可能与大多数主题和插件不兼容。

use_date_for_updated 在 v7.0.0+ 中已删除。请改用 updated_option: 'date'

分页

设置 描述 默认
per_page 每页显示的文章数。0 禁用分页 10
pagination_dir URL 格式 page

示例

pagination_dir: 'page'
# http://example.com/page/2

pagination_dir: 'awesome-page'
# http://example.com/awesome-page/2

扩展

设置 描述
theme 主题名称。false 禁用主题
theme_config 主题配置。在该键下包含任何自定义主题设置以覆盖主题默认值。
deploy 部署设置
meta_generator 元生成器 标签。false 禁用标签的注入。

包含/排除文件或文件夹

使用以下选项来显式处理或忽略某些文件/文件夹。支持 全局表达式 进行路径匹配。

includeexclude 选项仅适用于 source/ 文件夹,而 ignore 选项适用于所有文件夹。

设置 描述
include 包含隐藏文件(包括以下划线开头的文件/文件夹,但存在例外*)
exclude 排除文件/文件夹
ignore 忽略文件/文件夹

示例

# Include/Exclude Files/Folders
include:
- ".nojekyll"
# Include 'source/css/_typing.css'.
- "css/_typing.css"
# Include any file in 'source/_css/'.
- "_css/*"
# Include any file and subfolder in 'source/_css/'.
- "_css/**/*"

exclude:
# Exclude 'source/js/test.js'.
- "js/test.js"
# Exclude any file in 'source/js/'.
- "js/*"
# Exclude any file and subfolder in 'source/js/'.
- "js/**/*"
# Exclude any file with filename that starts with 'test' in 'source/js/'.
- "js/test*"
# Exclude any file with filename that starts with 'test' in 'source/js/' and its subfolders.
- "js/**/test*"
# Do not use this to exclude posts in the 'source/_posts/'.
# Use skip_render for that. Or prepend an underscore to the filename.
# - "_posts/hello-world.md" # Does not work.

ignore:
# Ignore any folder named 'foo'.
- "**/foo"
# Ignore 'foo' folder in 'themes/' only.
- "**/themes/*/foo"
# Same as above, but applies to every subfolders of 'themes/'.
- "**/themes/**/foo"

列表中的每个值都必须用单引号/双引号括起来。

include:exclude: 不适用于 themes/ 文件夹。使用 ignore: 或在文件/文件夹名前添加下划线以排除。

* 值得注意的例外是 source/_posts 文件夹,但该文件夹下以下划线开头的任何文件或文件夹仍将被忽略。不建议在该文件夹中使用 include: 规则。

使用备用配置

可以通过向您的 hexo 命令添加 --config 标志来指定自定义配置文件路径,该标志带有一个指向备用 YAML 或 JSON 配置文件的路径,或多个 YAML 或 JSON 文件的逗号分隔列表(无空格)。

# use 'custom.yml' in place of '_config.yml'
$ hexo server --config custom.yml

# use 'custom.yml' & 'custom2.json', prioritizing 'custom2.json'
$ hexo server --config custom.yml,custom2.json

使用多个文件将合并所有配置文件并将合并后的设置保存到 _multiconfig.yml 中。后面的值优先。它适用于任何数量的 JSON 和 YAML 文件,这些文件具有任意深度的对象。请注意,列表中不允许出现空格

例如,在上面的示例中,如果 custom.yml 中有 foo: bar,但 custom2.json 中有 "foo": "dinosaur",则 _multiconfig.yml 将包含 foo: dinosaur

备用主题配置

Hexo 主题是独立的项目,具有独立的 _config.yml 文件。

与其分叉主题并维护一个包含您的设置的自定义版本,不如从其他地方进行配置

从网站主配置文件中的 theme_config

从 Hexo 2.8.2 版本开始支持

# _config.yml
theme: "my-theme"
theme_config:
bio: "My awesome bio"
foo:
bar: "a"
# themes/my-theme/_config.yml
bio: "Some generic bio"
logo: "a-cool-image.png"
foo:
baz: 'b'

导致主题配置

{
"bio": "My awesome bio",
"logo": "a-cool-image.png",
"foo": {
"bar": "a",
"baz": "b"
}
}

从专用的 _config.[theme].yml 文件

从 Hexo 5.0.0 版本开始支持

该文件应放在您的网站文件夹中,支持 ymljson 格式。Hexo 必须配置 _config.yml 中的 theme 才能读取 _config.[theme].yml

# _config.yml
theme: "my-theme"
# _config.my-theme.yml
bio: "My awesome bio"
foo:
bar: "a"
# themes/my-theme/_config.yml
bio: "Some generic bio"
logo: "a-cool-image.png"
foo:
baz: 'b'

导致主题配置

{
"bio": "My awesome bio",
"logo": "a-cool-image.png",
"foo": {
"bar": "a",
"baz": "b"
}
}

我们强烈建议您将主题配置存储在一个地方。但是,如果您必须单独存储主题配置,则需要了解这些配置的优先级:网站主配置文件中的 theme_config 在合并过程中优先级最高,然后是专用的主题配置文件。
主题目录下的 _config.yml 文件优先级最低。