Hexo配置详解

前言

记录一下Hexo博客平台的相关配置信息,方便后续进行查找与自定义

前情摘要

所进行配置的Hexo平台版本为7.3.0

本篇文章说明内容大量节选于官方文档教程,但由于官方文档后面存在更新文档的要求,因此这里只做摘要,不保证能完全实现功能。

配置信息详解

文件中存在的

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

官网配置文档信息,还有项目GitHub地址

网站标题等
1
2
3
4
5
6
7
8
# Site
title: ZHYCarge的个人博客
subtitle: ''
description: '总是要留下些什么'
keywords:
author: ZHYCarge
language: zh-CN
timezone: 'Asia/Shanghai'
关键词 解释
title 网站主标题
subtitle 网站副标题,在主标题下面
description 个人描述,出现在博客作者下面
keywords 关键词,支持多个值进行输入。应该是搜索引擎索引使用(猜测)
author 博客平台作者(如果在博文中不指定作者名字,则默认为这个)
language 博客平台网站语言,使用2 个字母的 ISO-639-1 代码或其变体(可选)。默认en,由于是中文平台,修改为zh-CN
timezone 平台时区信息,可以点我查到更多,国内应为Asia/Shanghai代表北京时间
博文URL配置
1
2
3
4
5
6
7
8
# URL
## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'
url: https://zhycarge.github.io/
permalink: :year/:month/:day/:title/
permalink_defaults:
pretty_urls:
trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
trailing_html: true # Set to false to remove trailing '.html' from permalinks
关键词 解释
url 博客站点的URL信息,后续文章索引链接都会编辑为这个
permalink 文章的永久链接地址。方便引用文章等。默认为年/月/日/文章标题
root(未提及) 网站的根目录信息。根据官网所诉:如果您的网站位于子目录中(例如http://example.org/blog),则设置urlhttp://example.org/blog并设置root/blog/
permalink_defaults 永久链接中每个段的默认值,若修改permalink生成格式,可能需要该参数
pretty_urls.trailing_index 美化URL格式,删除尾随的index.htmlURL显示内容。默认为true,对index.html内容进行显示。官网例子
pretty_urls.trailing_html 美化URL格式,显示后面尾随的.html显示内容,对index.html不适用。默认为true
目录
1
2
3
4
5
6
7
8
9
# Directory
source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: :lang
skip_render:
关键词 解释
source_dir 源文件夹。内容存储的位置。文章存放文件夹一般为_posts
public_dir 公共文件夹,在其中生成静态网站,文件夹中的内容可对外展示
tag_dir 标签目录。一般在source文件夹下创建tags文件夹并附一个index.md文件来进行标签目录渲染
archive_dir 文章存档目录。暂不知道有什么用处。初步想法是与Hexo admin进行配套使用
category_dir 分类目录。一般在source文件夹下创建categories文件夹并附一个index.md文件来进行分类目录渲染
code_dir 包含代码目录。暂不知道有何用处。
i18n_dir i18n 目录。应该是用于国际化适配作用
skip_render 会将指定文件内容或者文件夹信息复制到public目录下,不进行渲染。可以使用glob 表达式进行路径匹配。官网示例
写作部分
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
# Writing
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link:
enable: true # Open external links in new tab
field: site # Apply to the whole site
exclude: ''
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
syntax_highlighter: highlight.js
highlight:
line_number: true
auto_detect: false
tab_replace: ''
wrap: true
hljs: false
prismjs:
preprocess: true
line_number: true
tab_replace: ''

关键词 解释
new_post_name 新博文提交的名字
default_layout 默认布局方式。暂不知道有何别的方式
titlecase 将标题转换为标题首字母大写?默认false,可能跟英文书写方式有关。。
external_link.enable 是否用新标签打开外部链接,默认为true
external_link.field 适用于整个站点site还是仅适用于博文post
external_link.exclude 排除哪几个网址。需要添加子域信息
filename_case 将文件名转换为大小写。禁用:01小写,2大写
render_drafts 是否显示草稿博文(感觉就是与Hexo admin使用)
post_asset_folder 启用资产文件夹。能够存放少量照片或文件,默认为 false
relative_link 建立相对于根文件夹的链接(感觉像使用相对引用进行)未查证
future 是否显示未来的帖子(帖子上写的时间还在未来)默认为true
syntax_highlighter 代码块语法高亮设置,使用指南见语法高亮部分
highlight 代码块语法高亮设置,使用指南见Highlight.js部分
prismjs 代码块语法高亮设置,使用指南见PrismJS部分
主页设置

生成帖子存档,由hexo-generator-index提供支持

1
2
3
4
5
6
7
8
# Home page setting
# path: Root path for your blogs index page. (default = '')
# per_page: Posts displayed per page. (0 = disable pagination)
# order_by: Posts order. (Order by date descending by default)
index_generator:
path: ''
per_page: 10
order_by: -date
关键词 解释
index_generator.path 博客索引页的根路径
index_generator.per_page 每页显示的帖子数量
index_generator.order_by 帖子排序。默认按日期降序排列(从新到旧)
分类和标签

不知道有什么别的用途emmm有待进一步学习

1
2
3
4
# Category & Tag
default_category: uncategorized
category_map:
tag_map:
关键词 解释
default_category 默认类别
category_map 覆盖类别 slug
tag_map 覆盖标签
Metadata 数据信息
1
2
3
# Metadata elements
## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta
meta_generator: true

在官方文档中并未进行提及有关内容,查看相关文档,默认将其打开吧,应该是关于网站渲染的内容,有待后续了解

日期与时间

Hexo 使用Moment.js来处理日期

1
2
3
4
5
6
7
8
# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: HH:mm:ss
## updated_option supports 'mtime', 'date', 'empty'
updated_option: 'mtime'
关键词 解释
date_format 日期格式
time_format 时间格式
updated_option 更新时间格式。当文章中不存在updated值时使用的默认值
文章分页
1
2
3
4
# Pagination
## Set per_page to 0 to disable pagination
per_page: 10
pagination_dir: page
关键词 解释
per_page 每页能存放多少篇文章,为0代表禁用
pagination_dir URL格式信息
包括、排除文件

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

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

1
2
3
4
5
# Include / Exclude file(s)
## include:/exclude: options only apply to the 'source/' folder
include:
exclude:
ignore:
关键词 解释
include 包括隐藏文件(包括名称以下划线开头的文件/文件夹,但有例外*)
exclude 排除文件/文件夹
ignore 忽略文件/文件夹

官网示例

插件和主题设置
1
2
3
4
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: next

设置主题内容或者插件信息

部署设置

参考这段进行设置

1
2
3
4
5
6
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
- type: 'git'
repo: git@github.com:ZHYCarge/ZHYCarge.github.io.git
branch: main

其它内容

标签文件夹中index.md文件内容信息

未配置其它内容,仅支持默认情况的话,应为:

1
2
3
4
5
---
title: tags
date: 2024-12-09 09:53:46
type: "tags"
---

时间可修改为创建的时间

分类文件夹中index.md文件内容信息

未配置其它内容,仅支持默认情况的话,应为:

1
2
3
4
5
---
title: categories
date: 2024-12-09 09:53:46
type: "categories"
---

时间可修改为创建的时间

尾言

参考资料