Hexo站点配置
本文将详细介绍 Hexo 站点配置文件中的各个配置项的含义与作用。
Hexo站点配置
参考官方文档 Hexo
本文基于 hexo: 3.8.0
站点配置文件
Hexo 工程的配置文件是 _config.yml
1 | # Hexo Configuration |
Site
Setting | Description |
---|---|
title | 站点名称 |
subtitle | 站点副标题 |
description | 站点描述 |
author | 作者名称 |
language | 网站使用的语言 |
timezone | 网站时区。Hexo 默认使用本机的时区,可用时区列表,例如:America/New_York , Japan , 和 UTC |
其中,description 主要用于 SEO,告诉搜索引擎一个关于站点的简单描述,通常建议在其中包含网站的关键词,也可以是你喜欢的一句签名。author 参数用于主题显示文章的作者。
对应于 NexT 主题 Gemini scheme 的显示效果下,不同主题显示效果不同,但原理类似。
URL
Setting | Description | Default |
---|---|---|
url | 网站的URL | |
root | 网站根目录 | |
permalink | 文章的永久链接格式 | :year/:month/:day/:title/ |
permalink_defaults | 永久链接中各部分的默认值 |
如果网站存放在子目录中,例如 http://yoursite.com/blog
,则需要将 url 设为 http://yoursite.com/blog
并把 root 设为 /blog/
。
Directory
Setting | Description | Default |
---|---|---|
source_dir | 资源文件夹,用来存放源文件,如文章的markdown文件 | source |
public_dir | 公共文件夹,用来存放生成的站点文件 | public |
tag_dir | 标签文件夹 | tags |
archive_dir | 归档文件夹 | archives |
category_dir | 分类文件夹 | categories |
code_dir | Include code 文件夹 | downloads/code |
i18n_dir | 国际化(i18n)文件夹 | :lang |
skip_render | 跳过指定文件的渲染,可以使用glob表达式来匹配路径, 如跳过README.md的渲染 |
Writing
Setting | Description | Description |
---|---|---|
new_post_name | 新文章的文件名称 | :title.md |
default_layout | 默认布局 | post |
titlecase | 把标题转换为 title case | false |
external_link | 在新标签中打开链接 | true |
filename_case | 把文件名称转换为"1"小写或"2"大写 | 0 |
render_drafts | 显示草稿 | false |
post_asset_folder | 同步创建资源文件夹 | false |
relative_link | 把链接改为与根目录的相对地址 | false |
future | 显示未来的文章 | true |
highlight | 代码块的设置 |
filename_case
filename_case
默认值为 0,表示不做任何处理,为 1 则转为小写,为 2 则转为大写。
post_asset_folder
设置 post_asset_folder
为 true 后,每次新建文章都会自动创建一个同名的文件夹,用于存放一些图片文件,方便管理文章的图片资源,创建的文件夹与新建文章在目录结构上是同级关系。
relative_link
相对地址
默认情况下,Hexo生成的超链接都是绝对地址。 例如,如果您的网站域名为example.com,您有一篇文章名为hello,那么绝对链接可能像这样:http://example.com/hello.html,它是绝对于域名的。 相对链接像这样:/hello.html,也就是说,无论用什么域名访问该站点,都没有关系,这在进行反向代理时可能用到。 通常情况下,建议使用绝对地址。
highlight
Setting | Description | Default |
---|---|---|
enable | 启用代码高亮 | true |
line_number | 显示行号 | true |
auto_detect | 自动检测语言 | false |
tab_replace | 使用指定字符串替换tab键 |
tab_replace
会将代码块中所有的tab键都换成指定的字符串,例如:
1 | highlight: |
那么所有的tab键都会被替换成字符串"true", 假设原代码为:
1 | class Main { |
替换后为:
1 | class Main { |
Home page setting
主页显示配置
Setting | Description | Default |
---|---|---|
path | 博客主页根路径 | '' |
per_page | 每页展示文章数量 (0 = 关闭分页功能) | 10 |
order_by | 排序,默认按时间降序排列 | -date |
Category & Tag
Setting | Description | Default |
---|---|---|
default_category | 默认分类 | uncategorized |
category_map | 分类别名 | |
tag_map | 标签别名 |
Date / Time format
Hexo 使用 Moment.js 来解析和显示时间。
Setting | Description | Default |
---|---|---|
date_format | 日期格式 | YYYY-MM-DD |
time_format | 时间格式 | H:mm:ss |
Pagination
Setting | Description | Default |
---|---|---|
per_page | 每页显示的文章数量 (0 = 关闭分页功能) | 10 |
pagination_dir | 分页目录 | page |
Extensions
Setting | Description | Default |
---|---|---|
theme | 当前主题名称,值为false时禁用主题 | landscape |
Deployment
Setting | Description |
---|---|
deploy | 部署部分的设置 |
例如:
1 | deploy: |
Setting | Description |
---|---|
type | deployer |
repo | 仓库库(Repository)地址 |
branch | 分支名称,如果使用的是 GitHub 或 GitCafe 的话,程序会尝试自动检测 |
message | 自定义提交信息 (默认为 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}) |
一个正确的部署配置中至少要有 type 参数,例如:
1 | deploy: |
可以同时使用多个 deployer,Hexo 会依照顺序执行每个 deployer,例如:
1 | deploy: |
添加 README.md 文件
Hexo 默认会将 source 文件夹下的 md 文件渲染成 html 文件,所以使用 hexo 部署到仓库后,项目下是没有 README.md 文件的。在 Hexo 目录下的 source 根目录下添加一个 README.md 文件,修改 站点配置文件
,skip_render 参数的值设置如下:
1 | skip_render: README.md |
表示在执行 hexo g
时跳过渲染 README.md 这个文件。