Cecil logo Cecil
What's on this page

Configuration

The website configuration is defined in a YAML file named cecil.yml or config.yml stored at the root:

<mywebsite>
└─ cecil.yml

Cecil offers many configuration options, but its defaults are often sufficient. A new site requires only these settings:

title: "My new Cecil site"
baseurl: https://mywebsite.com/
description: "Site description"

The following pages describe the configuration options supported by Cecil.

Some options specific to a command are documented with that command: editor (new:page) and doctor.* (doctor).

Priority

The configuration is built from several sources, each one overriding the previous ones:

  1. Cecil default configuration
  2. themes configuration (the first theme overrides the next ones)
  3. site configuration (cecil.yml)
  4. environment variables and command line options

Maps (e.g. pages.body.images or pages.default) are merged key by key: you only need to define the keys you want to change.

A map can be enabled or disabled with a boolean, without losing its options:

cache: false # same as `cache: {enabled: false}`

In templates, use the enabled test to check it: {% if config.cache is enabled %}.

Lists

When an option is a list of values (e.g. pages.ext, output.pagetypeformats or assets.images.responsive.widths), the list you define replaces the default one:

output:
  pagetypeformats:
    homepage: [html] # only HTML, regardless of the defaults

If a theme defines the same list, the values of your list are added to the theme ones, as they can be required by the theme.

To adjust the default (or theme) list instead, use a map: true adds a value, false removes it.

output:
  pagetypeformats:
    homepage:
      rss: true   # adds RSS
      atom: false # removes Atom
assets:
  images:
    responsive:
      widths:
        2560: true # adds a width
        480: false # removes a width

In this section