站点级配置写在 __everkm/everkm.yaml。渲染时合并主题 everkm-theme.yaml 中的 config,站点配置覆盖主题默认值。
模板中通过全局变量 __config 读取;目录级规则写在 folders 字段。
最小示例
config:
timezone: Asia/Shanghai
default_lang: zh_CN
site:
name: 我的站点
description: 站点简介
logo: ~/assets/logos/logo.svg
default_template: post.html
folders:
"/":
hide_in_url: true
"/blog/":
template: list.html
url_id_suffix: false
"/docs/":
template: book.html
query:
nav_file: /docs/_nav.md
breadcrumbs:
- title: "@i18n:nav.docs"
url: /docs/
config 常用字段
| 字段 | 说明 |
|---|---|
config.timezone | 时区,默认 Asia/Chongqing |
config.default_lang | 默认语言,影响 @i18n: 与 t() 回退,默认 en_US |
config.site | 站点名称、描述、Logo 等,具体字段取决于主题 |
config 下的字符串可使用 @i18n:<key> 引用语言包,见 多语言。
主题特有配置(如 youlog 的 algolia_search、header_nav)写在 config 下。youlog 各字段说明见 theme-youlog。
default_template
全站默认页面模板名称。某目录未在 folders 中指定 template 时使用。
可被 folders 中同级或子目录的 template 覆盖。
folders 目录规则
在 everkm.yaml 中按 URL 路径前缀为目录声明渲染规则。子目录与祖先合并继承,深层覆盖浅层。
常用字段:
| 字段 | 说明 |
|---|---|
template | 该目录下页面使用的主题内模板名 |
query | 合并进模板全局变量 __qs 的键值对 |
breadcrumbs | 面包屑;title 支持 @i18n:<key> |
hide_in_url | true 时该目录段不出现在 URL 中 |
url_id_suffix | 默认 true;false 时 URL 为 {slug}.html 而非 {slug}-{id}.html |
hash_scatter | 是否将文章哈希分散到子目录导出 |
完整字段、合并规则与 URL 生成见 目录配置。
folders:
"/blog/":
template: list
url_id_suffix: false # /blog/my-post.html,而非 /blog/my-post-123.html
与主题配置的关系
| 文件 | 作用 |
|---|---|
__everkm/theme/<name>/everkm-theme.yaml | 主题元信息与主题级默认 config |
__everkm/everkm.yaml | 站点配置,优先级更高 |
主题元信息字段见 主题开发。