config.ymi配置解析
一、基础设置
# Site
title: Hexo # 博客的标题
subtitle: '' # 博客的副标题
description: '' # 描述,用于简要介绍博客的内容或主题
keywords: # 关键字
author: John Doe # 作者
language: en # 语言 中文简体为 zh-CN
timezone: '' # 时区 大陆地区为 Asia/Shanghai
二、网址设置
# URL
url: http://example.com # 博客的实际网址
permalink: :year/:month/:day/:title/
permalink_defaults:
## 以下三个皆为布尔值,均已 true 为例
pretty_urls:
# 被设置为 true 时
1、移除 .html 后缀
2、移除 index.html 文件名
trailing_index: true
# 在链接地址末尾添加 index.html
trailing_html: true
# 在链接地址末尾添加 .html 后缀
三、Hexo 目录结构
一般情况 保持默认 就行
# Directory
source_dir: source
# 默认存放源文件的目录 source\_posts
public_dir: public
# 存放生成的静态文件
执行 hexo generate (hexo g)命令时,生成的静态文件会保存在这个目录中
## 在 public 目录下
tag_dir: tags
# 这是存放标签(Tags)页面的目录
默认情况下,Hexo 会在 tags 目录下生成标签页面
archive_dir: archives
# 这是存放归档(Archives)页面的目录
默认情况下,Hexo 会在 archives 目录下生成归档页面
category_dir: categories
# 这是存放分类(Categories)页面的目录
默认情况下,Hexo 会在 categories 目录下生成分类页面
code_dir: downloads/code
# 这是存放代码文件的目录,比如下载的代码文件
默认情况下,Hexo 会在 downloads/code 目录下存放这些文件
i18n_dir: :lang
# 这是存放国际化文件的目录。
在 Hexo 中,可以使用国际化插件来实现多语言支持,这个配置项可以指定存放不同语言版本文件的目录。
lang 是一个占位符,表示语言代码,例如 zh-CN 表示中文简体
skip_render:
# 这个选项用于指定哪些文件不需要被渲染。
一般情况下,Hexo 会渲染所有的 Markdown 文件,但有时你可能希望某些文件不被渲染
(比如一些纯文本或二进制文件)。
你可以在这里指定这些文件的路径,以避免它们被渲染
四、写作
# Writing
new_post_name: :title.md
# 新文章的文件名格式,一般都使用 Markdown 写
default_layout: post
# 默认布局
1、post: 这是最常见的布局类型,用于普通的文章。通常用来展示博客内容。
2、page: 这个布局类型用于静态页面,比如关于页面、联系页面等。与普通文章不同,页面没有日期和分类信息,更适用于不经常更新的内容。
3、draft: 这个布局类型用于草稿。草稿文章不会被发布到博客中,但可以在本地进行编辑和预览。
4、custom: 除了内置的布局类型外,你还可以创建自定义的布局类型。
titlecase: false
# 控制文章标题是否自动转换为标题格式。
如果设置为 true,文章标题将会自动转换为标题格式(每个单词首字母大写)
external_link:
# 设置是否在新标签页中打开外部链接。
如果设置为 true,则外部链接将会在新标签页中打开
enable: true
# Open external links in new tab
field: site # Apply to the whole site
exclude: ''
# 排除某些文章或页面不渲染。
可以在这里指定要排除的文章或页面的文件名或路径
filename_case: 0
render_drafts: false
# 设置是否渲染草稿。如果设置为 true,则 Hexo 会渲染草稿文件
post_asset_folder: false
# 设置是否为每篇文章创建一个独立的资源文件夹
以下为一个简单的tree示例:
public # public 文件夹
└── my-article # 文章文件夹
├── index.html # 文章
└── assets # 资源文件夹
├── image1.jpg
├── image2.png
└── document.pdf
relative_link: false
# 设置是否使用相对链接。
如果设置为 true,则生成的链接将使用相对路径。
future: true
# 设置是否渲染未来发布的文章。
如果设置为 true,则 Hexo 会渲染未来发布的文章,否则将不渲染未来发布的文章。
syntax_highlighter: highlight.js
# 设置代码高亮引擎。默认情况下,Hexo 使用 highlight.js
## highlight.js
highlight:
line_number: true
# 控制是否显示行号。
如果设置为 true,则会在代码块中显示行号
auto_detect: true
# 控制是否自动检测代码语言 建议true
如果设置为 true,Hexo 会尝试自动检测代码块中的语言类型。
如果设置为 false,则需要手动指定代码块的语言。
tab_replace: ''
# 设置替换 Tab 字符的方式。 建议默认
如果需要替换 Tab 字符,可以在这里指定替换的字符
wrap: true
# 控制是否自动换行。 建议默认
如果设置为 true,则代码块中的内容会自动换行,以适应显示区域。
hljs: false
# 控制是否使用 highlight.js 进行代码高亮。 看自己
如果设置为 true,Hexo 将使用 highlight.js 进行代码高亮。
## 以下为一些highlight.js补充,看需求添加
1、languages: 可以指定要加载的代码语言,以减少加载时间。默认情况下,highlight.js 会加载所有支持的语言,但你也可以指定只加载特定的语言,以加快页面加载速度。
2、class_prefix: 设置生成的 HTML 元素的 class 前缀。这可以用于避免与其他样式表冲突,或者用于自定义样式。
3、useBR: 控制是否将换行符(\n)转换为 <br> 标签。如果设置为 true,则会将换行符转换为 <br> 标签,而不是添加 <span> 标签来保留原始换行。
4、languages_url: 可以指定加载额外语言的 URL。如果你使用的语言不在默认的 highlight.js 包中,你可以通过这个选项来指定加载额外语言的 URL。
5、code_blocks: 可以指定要处理的代码块。默认情况下,highlight.js 会自动查找页面中的所有代码块进行高亮处理,但你也可以通过这个选项来手动指定要处理的代码块。
## prism.js
prismjs:
preprocess: true
# 控制是否对代码块进行预处理。 建议默认
如果设置为 true,Hexo 将会在渲染页面之前对代码块进行预处理。
预处理过程包括解析代码块中的 HTML 实体和转义字符。
line_number: true
# 控制是否显示行号。 建议默认
如果设置为 true,则会在代码块中显示行号。
tab_replace: ''
# 设置替换 Tab 字符的方式。 建议默认
如果需要替换 Tab 字符,可以在这里指定替换的字符。
五、首页设置
# 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: /
# 设置博客首页的路径。
默认情况下,博客首页的路径是根路径,即 /。
你可以在这里指定其他路径,比如 /blog,以便将博客首页放在特定的路径下。
per_page: 10
# 设置每页显示的文章数量。
如果设置为 0,则表示禁用分页,所有文章都会在首页显示。
order_by: -date
# 设置文章的排序方式。
默认情况下,文章按照日期降序排列,即最新的文章排在前面。
你可以在这里指定其他排序方式,比如按照标题排序、按照阅读量排序等。
-date 表示按照日期降序排列,date 则表示按照日期升序排列。
-updated: 根据文章的更新时间进行排序。
-title: 根据文章标题进行排序。
-path: 根据文章路径进行排序。
-comments: 根据文章的评论数量进行排序。
-likes: 根据文章的点赞数量进行排序。
-views: 根据文章的浏览量进行排序。
-word_count: 根据文章的字数进行排序
六、分类与标签
# Category & Tag
default_category: uncategorized
# 设置默认分类。
如果一篇文章没有指定分类,则会被归类到这个默认分类下。
在这个示例中,uncategorized 是默认的分类名称。
category_map:
# 这个选项允许你设置分类别名映射。
你可以将某个分类的别名映射到另一个分类,以便在展示分类时使用别名而不是原始分类名称。
比如,你可以将 tech 映射到 technology,这样在显示分类时会使用 tech 而不是 technology。
tag_map:
# 类似于 category_map,这个选项允许你设置标签别名映射。
你可以将某个标签的别名映射到另一个标签,以便在展示标签时使用别名而不是原始标签名称。
七、Hexo 版本
# Metadata elements
## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta
meta_generator: true
# 这段配置用于控制是否在生成的 HTML 页面中包含 meta 标签来显示 Hexo 的版本信息。
让我解释一下这个选项的含义:
这是一个布尔值选项,用于控制是否在生成的 HTML 页面中包含 meta 标签来显示 Hexo 的版本信息。
如果设置为 true,Hexo 会在生成的 HTML 页面中添加一个类似于 <meta name="generator" content="Hexo x.x.x"> 的标签,其中的 x.x.x 表示 Hexo 的版本号。
这样做可以让浏览器或搜索引擎识别出页面是由 Hexo 生成的。
一般来说,建议保持这个选项为 true,因为这样有助于提高网站的可识别性和可访问性。
八、时间相关
# 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
# 这个选项用于设置日期的显示格式。
默认情况下,日期显示为 YYYY-MM-DD,即年-月-日的格式。
你可以根据自己的需求,使用 Moment.js 的格式定义语法自定义日期的显示格式。
time_format: HH:mm:ss
# 这个选项用于设置时间的显示格式。
默认情况下,时间显示为 HH:mm:ss,即时:分:秒的格式。
你可以根据自己的需求,使用 Moment.js 的格式定义语法自定义时间的显示格式。
updated_option: 'mtime'
# 这个选项用于设置文章的更新时间选项。
## 有三个选项 'mtime', 'date', 'empty'
默认情况下,Hexo 使用 mtime。
mtime:即文件的修改时间作为文章的更新时间
date:表示使用 Front Matter 中指定的日期作为更新时间
empty:表示不显示更新时间。
九、设置分页
# Pagination
## Set per_page to 0 to disable pagination
per_page: 10
# 这个选项用于设置每页显示的文章数量。
默认情况下,每页显示 10 篇文章。你可以根据自己的需求调整这个值,
比如设置为 5 表示每页显示 5 篇文章,或者设置为 0 表示禁用分页,所有文章都显示在同一页。
pagination_dir: page
# 这个选项用于设置分页链接的路径。 建议默认
默认情况下,分页链接的路径是 /page/,
比如第一页是 /page/1/,第二页是 /page/2/,依此类推。
你可以根据自己的需求调整这个路径,比如设置为 /pages/,则分页链接的路径变成了 /pages/1/、/pages/2/,以此类推。
十、包含和排除文件
# Include / Exclude file(s)
## include:/exclude: options only apply to the 'source/' folder
include:
# 这个选项用于指定需要包含的文件或文件夹。
只有在 source/ 文件夹下的文件或文件夹才会受到这个配置项的影响。
你可以指定需要包含的特定文件或文件夹的路径,
比如 include: ['images/', 'videos/']
表示只包含 source/ 文件夹下的 images/ 和 videos/ 文件夹及其内容。
exclude:
# 这个选项用于指定需要排除的文件或文件夹。
只有在 source/ 文件夹下的文件或文件夹才会受到这个配置项的影响。
你可以指定需要排除的特定文件或文件夹的路径,
比如 exclude: ['drafts/', '*.md']
表示排除 source/ 文件夹下的 drafts/ 文件夹及其内容,以及所有扩展名为 .md 的 Markdown 文件。
ignore:
# 这个选项用于设置忽略的文件或文件夹,与 exclude 类似。
只有在 source/ 文件夹下的文件或文件夹才会受到这个配置项的影响。
你可以指定需要忽略的特定文件或文件夹的路径,
比如 ignore: ['node_modules/', '*.log']
表示忽略 source/ 文件夹下的 node_modules/ 文件夹及其内容,以及所有扩展名为 .log 的日志文件。
十一、主题
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: landscape
```
# Hexo 主题是用来控制博客外观和布局的模板。
你可以从 Hexo 官方网站上的主题页面(https://hexo.io/themes/)
上找到各种不同的主题,选择一个适合你的博客风格和需求的主题。
然后,你可以通过编辑 Hexo 的配置文件,
将选定的主题名称指定为 theme 配置项的值,以应用该主题到你的博客中。
在这个示例中,主题名称被指定为 landscape,表示使用 Landscape 主题。
当你运行 Hexo 生成静态页面时,Hexo 将会使用该主题来渲染你的博客页面。
## 十二、博客部署
这段配置用于指定博客部署的方式
```yml
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: ''
type: 这个选项用于指定部署方式的类型。
在 Hexo 中,你可以使用不同的部署方式将生成的静态网站文件发布到互联网上。
常见的部署方式包括:
git: 使用 Git 将生成的静态网站文件部署到 Git 仓库(比如 GitHub、GitLab、Gitee 等)。
ftp: 使用 FTP 将生成的静态网站文件上传到远程服务器。
rsync: 使用 Rsync 将生成的静态网站文件同步到远程服务器。
s3: 将生成的静态网站文件上传到 Amazon S3 云存储服务。
github: 将生成的静态网站文件部署到 GitHub Pages。
gitlab: 将生成的静态网站文件部署到 GitLab Pages。
heroku: 将生成的静态网站文件部署到 Heroku 平台。
等等…
你需要根据自己的实际情况和偏好选择合适的部署方式,并在这里指定相应的类型。
然后,根据具体的部署方式,你可能需要提供额外的配置信息,比如 Git 仓库地址、FTP 服务器地址和凭据、Amazon S3 访问密钥等。
详细的配置信息和使用说明可以参考 Hexo 官方文档中的部署部分。