Site Configuration

2026-06-19

Site-level configuration is written in __everkm/everkm.yaml. During rendering, it is merged with the config from the theme's everkm-theme.yaml, with site configuration taking precedence over theme defaults.

Templates access it through the global variable __config; directory-level rules are defined in the folders field.

Minimal Example

config:
  timezone: Asia/Shanghai
  default_lang: zh_CN
  site:
    name: My Site
    description: A brief site 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/

Common config Fields

FieldDescription
config.timezoneTimezone, defaults to Asia/Chongqing
config.default_langDefault language, affects @i18n: and t() fallback, defaults to en_US
config.siteSite name, description, logo, etc. Specific fields depend on the theme

Strings under config can use @i18n:<key> to reference language packs. See Internationalization (i18n).

Theme-specific configuration (such as youlog's algolia_search, header_nav) is placed under config. See the theme-youlog README for field descriptions.

default_template

The default page template name for the entire site. Used when a directory does not specify a template in folders.

Can be overridden by template in sibling or child entries within folders.

folders Directory Rules

In everkm.yaml, declare rendering rules for directories by URL path prefix. Child directories merge and inherit from ancestors, with deeper entries overriding shallower ones.

Common fields:

FieldDescription
templateThe theme template name used for pages in this directory
queryKey-value pairs merged into the template global variable __qs
breadcrumbsBreadcrumbs; title supports @i18n:<key>
hide_in_urlWhen true, this directory segment is omitted from the URL
url_id_suffixDefaults to true; when false, the URL is {slug}.html instead of {slug}-{id}.html
hash_scatterWhether to scatter article hashes into subdirectories during export

Complete fields, merge rules, and URL generation at Directory Configuration.

folders:
  "/blog/":
    template: list
    url_id_suffix: false   # /blog/my-post.html instead of /blog/my-post-123.html

Relationship with Theme Configuration

FilePurpose
__everkm/theme/<name>/everkm-theme.yamlTheme metadata and theme-level default config
__everkm/everkm.yamlSite configuration, higher priority

Theme metadata fields at Theme Development.