Hexo 配置

2020-10-20 17:08 更新

配置

您可以在 _config.yml 中修改大部分的配置。

網(wǎng)站

參數(shù) 描述
title 網(wǎng)站標(biāo)題
subtitle 網(wǎng)站副標(biāo)題
description 網(wǎng)站描述
keywords 網(wǎng)站的關(guān)鍵詞。支援多個(gè)關(guān)鍵詞。
author 您的名字
language 網(wǎng)站使用的語(yǔ)言。對(duì)于簡(jiǎn)體中文用戶來(lái)說,使用不同的主題可能需要設(shè)置成不同的值,請(qǐng)參考你的主題的文檔自行設(shè)置,常見的有 zh-Hanszh-CN
timezone 網(wǎng)站時(shí)區(qū)。Hexo 默認(rèn)使用您電腦的時(shí)區(qū)。請(qǐng)參考 時(shí)區(qū)列表 進(jìn)行設(shè)置,如 America/New_York, Japan, 和 UTC 。一般的,對(duì)于中國(guó)大陸地區(qū)可以使用 Asia/Shanghai

其中,description主要用于 SEO,告訴搜索引擎一個(gè)關(guān)于您站點(diǎn)的簡(jiǎn)單描述,通常建議在其中包含您網(wǎng)站的關(guān)鍵詞。author參數(shù)用于主題顯示文章的作者。

網(wǎng)址

參數(shù) 描述 默認(rèn)值
url 網(wǎng)址, must starts with http:// or https://
root 網(wǎng)站根目錄
permalink 文章的 永久鏈接 格式 :year/:month/:day/:title/
permalink_defaults 永久鏈接中各部分的默認(rèn)值
pretty_urls 改寫 permalink 的值來(lái)美化 URL
pretty_urls.trailing_index 是否在永久鏈接中保留尾部的 index.html,設(shè)置為 false 時(shí)去除 true
pretty_urls.trailing_html 是否在永久鏈接中保留尾部的 .html, 設(shè)置為 false 時(shí)去除 (對(duì)尾部的 index.html無(wú)效) true
網(wǎng)站存放在子目錄

如果您的網(wǎng)站存放在子目錄中,例如 http://example.com/blog,則請(qǐng)將您的 url 設(shè)為 http://example.com/blog 并把 root 設(shè)為 /blog/。

例如:

# 比如,一個(gè)頁(yè)面的永久鏈接是 http://example.com/foo/bar/index.html
pretty_urls:
  trailing_index: false
# 此時(shí)頁(yè)面的永久鏈接會(huì)變?yōu)?http://example.com/foo/bar/

目錄

參數(shù) 描述 默認(rèn)值
source_dir 資源文件夾,這個(gè)文件夾用來(lái)存放內(nèi)容。 source
public_dir 公共文件夾,這個(gè)文件夾用于存放生成的站點(diǎn)文件。 public
tag_dir 標(biāo)簽文件夾 tags
archive_dir 歸檔文件夾 archives
category_dir 分類文件夾 categories
code_dir Include code 文件夾,source_dir 下的子目錄 downloads/code
i18n_dir 國(guó)際化(i18n)文件夾 :lang
skip_render 跳過指定文件的渲染。匹配到的文件將會(huì)被不做改動(dòng)地復(fù)制到 public 目錄中。您可使用 glob 表達(dá)式來(lái)匹配路徑。

例如:

skip_render: "mypage/**/*"
# 將會(huì)直接將 `source/mypage/index.html` 和 `source/mypage/code.js` 不做改動(dòng)地輸出到 'public' 目錄
# 你也可以用這種方法來(lái)跳過對(duì)指定文章文件的渲染
skip_render: "_posts/test-post.md"
# 這將會(huì)忽略對(duì) 'test-post.md' 的渲染
提示

如果您剛剛開始接觸 Hexo,通常沒有必要修改這一部分的值。

文章

參數(shù) 描述 默認(rèn)值
new_post_name 新文章的文件名稱 :title.md
default_layout 預(yù)設(shè)布局 post
auto_spacing 在中文和英文之間加入空格 false
titlecase 把標(biāo)題轉(zhuǎn)換為 title case false
external_link 在新標(biāo)簽中打開鏈接 true
external_link.enable 在新標(biāo)簽中打開鏈接 true
external_link.field 對(duì)整個(gè)網(wǎng)站(site)生效或僅對(duì)文章(post)生效 site
external_link.exclude 需要排除的域名。主域名和子域名如 www 需分別配置 []
filename_case 把文件名稱轉(zhuǎn)換為 (1) 小寫或 (2) 大寫 0
render_drafts 顯示草稿 false
post_asset_folder 啟動(dòng) Asset 文件夾 false
relative_link 把鏈接改為與根目錄的相對(duì)位址 false
future 顯示未來(lái)的文章 true
highlight 代碼塊的設(shè)置, see Highlight.js section for usage guide
prismjs 代碼塊的設(shè)置, see PrismJS section for usage guide
相對(duì)地址

默認(rèn)情況下,Hexo 生成的超鏈接都是絕對(duì)地址。例如,如果您的網(wǎng)站域名為 example.com,您有一篇文章名為 hello,那么絕對(duì)鏈接可能像這樣:http://example.com/hello.html,它是絕對(duì)于域名的。相對(duì)鏈接像這樣:/hello.html,也就是說,無(wú)論用什么域名訪問該站點(diǎn),都沒有關(guān)系,這在進(jìn)行反向代理時(shí)可能用到。通常情況下,建議使用絕對(duì)地址。

分類 & 標(biāo)簽

參數(shù) 描述 默認(rèn)值
default_category 默認(rèn)分類 uncategorized
category_map 分類別名
tag_map 標(biāo)簽別名

日期 / 時(shí)間格式

Hexo 使用 Moment.js 來(lái)解析和顯示時(shí)間。

參數(shù) 描述 默認(rèn)值
date_format 日期格式 YYYY-MM-DD
time_format 時(shí)間格式 HH:mm:ss
updated_option 當(dāng) Front Matter 中沒有指定 updated 時(shí) updated 的取值 mtime
updated_option

updated_option 控制了當(dāng) Front Matter 中沒有指定 updated 時(shí),updated 如何取值:

  • mtime: 使用文件的最后修改時(shí)間。這是從 Hexo 3.0.0 開始的默認(rèn)行為。
  • date: 使用 date 作為 updated 的值??杀挥糜?Git 工作流之中,因?yàn)槭褂?Git 管理站點(diǎn)時(shí),文件的最后修改日期常常會(huì)發(fā)生改變
  • empty: 直接刪除 updated。使用這一選項(xiàng)可能會(huì)導(dǎo)致大部分主題和插件無(wú)法正常工作。

use_date_for_updated 選項(xiàng)已經(jīng)被廢棄,將會(huì)在下個(gè)重大版本發(fā)布時(shí)去除。請(qǐng)改為使用 updated_option: 'date'

use_date_for_updated | 啟用以后,如果 Front Matter 中沒有指定 updatedpost.updated 將會(huì)使用 date 的值而不是文件的創(chuàng)建時(shí)間。在 Git 工作流中這個(gè)選項(xiàng)會(huì)很有用 | true

分頁(yè)

參數(shù) 描述 默認(rèn)值
per_page 每頁(yè)顯示的文章量 (0 = 關(guān)閉分頁(yè)功能) 10
pagination_dir 分頁(yè)目錄 page

擴(kuò)展

參數(shù) 描述
theme 當(dāng)前主題名稱。值為false時(shí)禁用主題
theme_config 主題的配置文件。在這里放置的配置會(huì)覆蓋主題目錄下的 _config.yml 中的配置
deploy 部署部分的設(shè)置
meta_generator Meta generator 標(biāo)簽。 值為 false 時(shí) Hexo 不會(huì)在頭部插入該標(biāo)簽

包括或不包括目錄和文件

在 Hexo 配置文件中,通過設(shè)置 include/exclude 可以讓 Hexo 進(jìn)行處理或忽略某些目錄和文件夾。你可以使用 glob 表達(dá)式 對(duì)目錄和文件進(jìn)行匹配。

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

參數(shù) 描述
include Hexo 默認(rèn)會(huì)忽略隱藏文件和文件夾(包括名稱以下劃線和 . 開頭的文件和文件夾,Hexo 的 _posts_data 等目錄除外)。通過設(shè)置此字段將使 Hexo 處理他們并將它們復(fù)制到 source 目錄下。
exclude Hexo 會(huì)忽略這些文件和目錄
ignore Ignore files/folders

舉例:

# Include/Exclude Files/Folders
include:
  - ".nojekyll"
  # 包括 'source/css/_typing.css'
  - "css/_typing.css"
  # 包括 'source/_css/' 中的任何文件,但不包括子目錄及其其中的文件。
  - "_css/*"
  # 包含 'source/_css/' 中的任何文件和子目錄下的任何文件
  - "_css/**/*"

exclude:
  # 不包括 'source/js/test.js'
  - "js/test.js"
  # 不包括 'source/js/' 中的文件、但包括子目錄下的所有目錄和文件
  - "js/*"
  # 不包括 'source/js/' 中的文件和子目錄下的任何文件
  - "js/**/*"
  # 不包括 'source/js/' 目錄下的所有文件名以 'test' 開頭的文件,但包括其它文件和子目錄下的單文件
  - "js/test*"
  # 不包括 'source/js/' 及其子目錄中任何以 'test' 開頭的文件
  - "js/**/test*"
  # 不要用 exclude 來(lái)忽略 'source/_posts/' 中的文件。你應(yīng)該使用 'skip_render',或者在要忽略的文件的文件名之前加一個(gè)下劃線 '_'
  # 在這里配置一個(gè) - "_posts/hello-world.md" 是沒有用的。

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"

列表中的每一項(xiàng)都必須用單引號(hào)或雙引號(hào)包裹起來(lái)。

includeexclude 并不適用于 themes/ 目錄下的文件。如果需要忽略 themes/ 目錄下的部分文件或文件夾,可以使用 ignore 或在文件名之前添加下劃線 _

使用代替配置文件

可以在 hexo-cli 中使用 --config 參數(shù)來(lái)指定自定義配置文件的路徑。你可以使用一個(gè) YAML 或 JSON 文件的路徑,也可以使用逗號(hào)分隔(無(wú)空格)的多個(gè) YAML 或 JSON 文件的路徑。例如:

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

# use 'custom.yml' & 'custom2.json', prioritizing 'custom3.yml', then 'custom2.json'
$ hexo generate --config custom.yml,custom2.json,custom3.yml

當(dāng)你指定了多個(gè)配置文件以后,Hexo 會(huì)按順序?qū)⑦@部分配置文件合并成一個(gè) _multiconfig.yml。如果遇到重復(fù)的配置,排在后面的文件的配置會(huì)覆蓋排在前面的文件的配置。這個(gè)原則適用于任意數(shù)量、任意深度的 YAML 和 JSON 文件。

例如,使用 --options 指定了兩個(gè)自定義配置文件:

$ hexo generate --config custom.yml,custom2.json

如果 custom.yml 中指定了 foo: bar,在 custom2.json 中指定了 "foo": "dinosaur",那么在 _multiconfig.yml 中你會(huì)得到 foo: dinosaur。

使用代替主題配置文件

通常情況下,Hexo 主題是一個(gè)獨(dú)立的項(xiàng)目,并擁有一個(gè)獨(dú)立的 _config.yml 配置文件。

除了自行維護(hù)獨(dú)立的主題配置文件,你也可以在其它地方對(duì)主題進(jìn)行配置。

配置文件中的 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'

最終主題配置的輸出是:


獨(dú)立的 _config.[theme].yml 文件

該特性自 Hexo 5.0.0 起提供

獨(dú)立的主題配置文件應(yīng)放置于站點(diǎn)根目錄下,支持 ymljson 格式。需要配置站點(diǎn) _config.yml 文件中的 theme 以供 Hexo 尋找 _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"
  }
}

我們強(qiáng)烈建議你將所有的主題配置集中在一處。如果你不得不在多處配置你的主題,那么這些信息對(duì)你將會(huì)非常有用:Hexo 在合并主題配置時(shí),Hexo 配置文件中的 theme_config 的優(yōu)先級(jí)最高,其次是 _config.[theme].yml 文件,最后是位于主題目錄下的 _config.yml 文件。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)