Skip to main content
A page’s settings live in a block of YAML frontmatter at the top of the file, delimited by ---. They set the page’s title and can override the project-wide defaults (from evidence.config.yaml) for that page only.
Most pages only need a title. Add other keys to override a setting for that page; anything you leave out is inherited from the project.

Supported keys

Inheritance

The layout keys (page_width, cards, table_of_contents, auto_refresh) override the project’s layout in evidence.config.yaml for that page. down_is_good, sidebar_position and icon are page-only settings; they have no project-wide default.

theme

Per-page theme overrides are nested under theme:, mirroring the structure of theme.yaml. Anything you set here overrides the project theme for this page only; anything you leave out is inherited.

downloads

Controls the Download PDF, Download Image, Download Data, and Generate Excel Report options in the published page’s menu. All are shown by default. downloads: false hides all of them:
To hide specific options, list them. Options you leave out stay visible:
Generate Excel Report exports an Excel workbook with a snapshot of the report on the first sheet and a data sheet per component. Because it includes both, turning off image or data hides it too. This hides the menu options. It doesn’t prevent other ways of saving the page, such as the browser’s own print dialog.

workflow.period

Adding a workflow.period block turns the page into a periodic report: a period picker appears at the top of the page, and the selected period is available as the period variable.
Only complete periods are offered — the period in progress never appears, so a published report doesn’t change under the reader while its period is still running. The most recent complete period is selected by default, and the selection is kept in the URL so a link points at a specific period. The picker follows the project’s date settings: “complete” is judged against date.default_date_range_end (so days_ago: 1 shifts which period counts as finished, and a custom_sql end pins periods to the data actually loaded), and the week grain starts weeks on date.first_day_of_week. period behaves like any other input: period.start and period.end are SQL expressions for the active dialect — writing them in markdown prints toDate('2026-07-01'). Use start_label / end_label for text. To put the picker somewhere else, such as next to the page title or alongside other inputs, add a period_selector with id="period". The picker then appears there instead of at the top of the page. Its grain and periods still come from the frontmatter. A selector inside an {% if %} block or a component slot’s fallback content doesn’t replace the top one, since it may not render.
workflow is reserved for reporting settings; other keys under it are ignored for now.

Frontmatter variables

Any key that isn’t one of the settings above is treated as your own custom value and preserved as-is. This is how page variables are defined — in the same frontmatter block, alongside your page settings — and then referenced elsewhere on the page with {{ $my_var }}. See Variables → In Frontmatter.