配置

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

¥You can modify site settings in _config.yml or in an alternate config file.

站点

¥Site

设置 描述
title 你网站的标题
subtitle 你网站的副标题
description 你的网站描述
keywords 你网站的关键字。支持多个值。
author 你的名字
language 你网站的语言。使用 2 个字母的 ISO-639-1 代码 或可选 其变体。默认为 en
timezone 你网站的时区。Hexo 默认使用你计算机上的设置。你可以在 此处 中找到可用时区列表。一些示例是 America/New_YorkJapanUTC

URL

设置 描述 默认
url 你的网站 URL,必须以 http://https:// 开头
root 你网站的根目录 url's pathname
permalink 文章的 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
Website in subdirectory

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

¥If your website is in a subdirectory (such as http://example.org/blog) set url to http://example.org/blog and set root to /blog/.

示例:

¥Examples:

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

目录

¥Directory

设置 描述 默认
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 raw 的路径,而不会被渲染。你可以使用 全局表达式 进行路径匹配。

示例:

¥Examples:

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`.

写入

¥Writing

设置 描述 默认
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 部分

主页设置

¥Home page setting

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

类别和标签

¥Category & Tag

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

示例:

¥Examples:

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

日期/时间格式

¥Date / Time format

Hexo 使用 Moment.js 处理日期。

¥Hexo uses Moment.js to process dates.

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

当未在前置内容中提供时,updated_option 控制 updated 值:

¥updated_option controls the updated value when not provided in the front-matter:

  • mtime:使用文件修改日期作为 updated。自 3.0.0 以来,它一直是 Hexo 的默认行为

    ¥mtime: Use file modification date as updated. It has been the default behaviour of Hexo since 3.0.0

  • date:使用 date 作为 updated。通常与 Git 工作流一起使用,当文件修改日期可能不同时。

    ¥date: Use date as updated. Typically used with Git workflow when file modification date could be different.

  • empty:如果不提供,只需删除 updated。可能与大多数主题和插件不兼容。

    ¥empty: Simply drop updated when not provided. May not be compatible with most themes and plugins.

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

¥use_date_for_updated is removed in v7.0.0+. Please use updated_option: 'date' instead.

分页

¥Pagination

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

示例:

¥Examples:

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

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

扩展

¥Extensions

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

包含/排除文件或文件夹

¥Include/Exclude Files or Folders

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

¥Use the following options to explicitly process or ignore certain files/folders. Support glob expressions for path matching.

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

¥include and exclude options only apply to the source/ folder, whereas ignore option applies to all folders.

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

示例:

¥Examples:

# 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"

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

¥Each value in the list must be enclosed with single/double quotes.

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

¥include: and exclude: do not apply to the themes/ folder. Either use ignore: or alternatively, prepend an underscore to the file/folder name to exclude.

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

¥* Notable exception is the source/_posts folder, but any file or folder with a name that starts with an underscore under that folder would still be ignored. Using include: rule in that folder is not recommended.

使用备用配置

¥Using an Alternate Config

可以通过将 --config 标志添加到 hexo 命令中来指定自定义配置文件路径,其中包含备用 YAML 或 JSON 配置文件的路径,或多个 YAML 或 JSON 文件的逗号分隔列表(无空格)。

¥A custom config file path can be specified by adding the --config flag to your hexo commands with a path to an alternate YAML or JSON config file, or a comma-separated list (no spaces) of multiple YAML or JSON files.

# 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 文件,其中包含任意深度的对象。请注意,列表中不允许有空格。

¥Using multiple files combines all the config files and saves the merged settings to _multiconfig.yml. The later values take precedence. It works with any number of JSON and YAML files with arbitrarily deep objects. Note that no spaces are allowed in the list.

例如,在上面的例子中,如果 foo: barcustom.yml 中,但 "foo": "dinosaur"custom2.json 中,则 _multiconfig.yml 将包含 foo: dinosaur

¥For instance, in the above example if foo: bar is in custom.yml, but "foo": "dinosaur" is in custom2.json, _multiconfig.yml will contain foo: dinosaur.

备用主题配置

¥Alternate Theme Config

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

¥Hexo themes are independent projects, with separate _config.yml files.

你无需复刻主题并使用你的设置维护自定义版本,而是可以从其他地方对其进行配置:

¥Instead of forking a theme, and maintaining a custom version with your settings, you can configure it from somewhere else:

来自站点主配置文件中的 theme_config

¥from theme_config in site’s primary configuration file

自 Hexo 2.8.2 起支持

¥Supported since 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'

导致主题配置:

¥Resulting in theme configuration:

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

来自专用的 _config.[theme].yml 文件

¥from a dedicated _config.[theme].yml file

自 Hexo 5.0.0 起支持

¥Supported since Hexo 5.0.0

文件应放在你的站点文件夹中,ymljson 均支持。必须配置 _config.yml 中的 theme,以便 Hexo 读取 _config.[theme].yml

¥The file should be placed in your site folder, both yml and json are supported. theme inside _config.yml must be configured for Hexo to read _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'

导致主题配置:

¥Resulting in theme configuration:

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

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

¥We strongly recommend that you store your theme configuration in one place. But in case you have to store your theme configuration separately, you need to know the priority of those configurations: The theme_config inside site’s primary configuration file has the highest priority during merging, then the dedicated theme configuration file.
The _config.yml file under the theme directory has the lowest priority.