Note 说明: 类型中有
undefined
表示你可以不提供该参数。
博客配置
配置文件
由于做这个项目的目的是弃用 hexo,所以可以无缝从 hexo 切换过来。
在你的博客根目录中创建 _config.yaml
.
可用配置: DataSourceConfig。
样例:
# 博客标题
title: <string>
# 子标题
subtitle: <string | undefined>
# 描述
description: <string | undefined>
# homePage
authorHome: <string | undefined>
theme_config: <undefined | ThemeConfig>
# 首页背景图片,配置多个每次都会随机展示
background: <string[] | undefined>
# 首页显示的文章数量,默认为 5
indexPageSize: <number | undeinfed>
# 头像
avatar: <string | undefined>
yaml
环境变量
一切以该文件注释为准:environment.d.ts.
BLOG_PATH
类型: string
说明: 博客的路径,必须提供,虽然可以使用相对路径,但还是强烈建议使用绝对路径!
NEXT_PUBLIC_CND_PUBLIC_PATH_BASE_URL
类型: string
| undefined
默认值: 无默认值
说明: CDN 路径前缀,不要以 /
结尾,否则路径拼接会出问题。
因为环境变量是 next.js 处理的,所以没有很好的办法来对
/
结尾的 URL 进行替换...
YAML_INDENT_SPACE_COUNT
类型: number
| undefined
默认值: 2
说明: 处理 文章元数据中 yaml 配置的 TAB 缩进,这里会将 TAB 替换为相应数量的空格,以便于继续 YAML 解析。
虽然提供了这个配置,但还是不要用 TAB 键来敲 YAML 的缩进!!!除非你是在专门的 IDE 中,例如 JetBrains 系列的 IDE 会在编辑 YAML 时自动将 TAB 转为 空格。 但是在 VSCode 中,这个转换是不存在的,因为你是在 md 文件中编辑的 yaml,所以需要格外注意,同理其它编辑器也需要一并注意。
NEXT_PUBLIC_COMMENT_SCRIPT_INJECT
类型: string
| undefined
默认值: 无默认值
说明: 为第三方评论组件注入脚本。
详见 配置评论组件
NEXT_PUBLIC_COMMENT_CONTAINER_IDENTIFIER
类型: string
| undefined
默认值: 无默认值
说明: 为第三方评论组件设置组件容器。
详见 配置评论组件
BLOG_HOME_POST_DIRECTORY
类型: string
默认值: source/_posts
说明: 首页文章的存放目录,相对于 BLOG_PATH 的路径。详见 [从任意 Markdown 博客迁移](/quick-start#从任意 Markdown 博客迁移)。
BLOG_RESOURCE_DIRECTORY
类型: string
默认值: source/images
说明: 资源文件的存放目录,相对于 BLOG_PATH 的路径。详见 [从任意 Markdown 博客迁移](/quick-start#从任意 Markdown 博客迁移)。
BLOG_POST_DIRECTORY
类型: string
默认值: source
说明: 所有博客文件的存放路径,相对于 BLOG_PATH 的路径。详见 [从任意 Markdown 博客迁移](/quick-start#从任意 Markdown 博客迁移)。
文章元数据
在文章 markdown 顶部使用如下格式以提供元数据:
--- <yaml content here> ---text
在 ---
之间的内容,就是 yaml 格式的元数据,与 hexo 兼容。
配置项
Overview:
title: async/await 异步编程
date: 2024-07-01 22:56:28
categories:
- Rust
tags: Rust
seo:
title: async/await 异步编程 | Rust
description: 使用 async/await 进行异步编程。
keywords:
- rust
- async
- await
yaml
title
类型:string
| undefined
文章标题,虽然可以为空,但是强烈推荐提供。
示例:
title: Java Hello World
yaml
date
类型:string
| undefined
文章创建时间,任意可以被 js 使用 new Date(<date>)
解析的字符串,例如:2023-09-04 16:16:53
,可以为空。
示例:
date: 2023-09-04 16:16:53
yaml
tags
类型: string[]
| string
| DeprecatedTags
|undefined
详细类型定义:
tags: <string | string[] | undefined>
---
# 为了兼容 particlex 主题提供的,不推荐使用,实际实现会忽略 `path` 的值
tags:
data:
- { name: <string>, path: <string> }
yaml
示例:
tags: java
---
tags:
- java
- spring
---
tags:
data:
- { name: 'java', path: '/java/' }
yaml
categories
类型: string[]
| string
| DeprecatedCategories
| undefined
详细类型定义:
categories: <string | string[] | undefined>
---
# 为了兼容 particlex 主题提供的,不推荐使用,实际实现会忽略 `path` 的值
categories:
data:
- { name: <string>, path: <string> }
yaml
示例:
categories: java
---
categories:
- java
- spring
---
categories:
data:
- { name: 'java', path: '/java/' }
yaml
seo
类型:SEO | undefined
详细类型定义:
seo:
title: <string | undefined>
keywords: <string[] | undefined>
description: string
yaml
-
title
: html 网页标题,而非文章的标题,如果不指定,则会使用<文章标题> | <博客title>
。参考资料:影响标题链接的最佳实践。
-
keywords
: 关键字,如果不提供,默认使用tags
内容(如果有)。参考资料: 关键词堆砌; Google 不会将关键字元标记用于网页排名。
-
description
: 网页描述。参考资料:使用高质量的描述。
示例:
seo:
title: Java Hello World | Xxx's Blog
keywords:
- java
- 'hello world'
description: '使用 Java 编写 Hello World 代码。'
yaml