Alongside the main _config.yaml configuration file, individual files can (and usually should) have their own configuration details.

The format of this configuration is YAML and it is specially delimited in files. For example, a post file might look something like this:

---
layout: post
title: "This is the title of my post"
date: 2018-10-03 09:30
description: "This is a description of my post."
excerpt: "This is the post excerpt which appears on the home page."
tags: [tech,php]
cats: [longform]
---
This is the post content, which can of course be written in Markdown.

The stuff between the --- lines is the individual file configuration.

The definitions shown are what you need for most files: a date and time, a title, a description, and excerpt and any tags and/or categories.

The layout is also important. This tells GreenHat what Smarty layout you want this file rendered through. Every file should have a layout although if one is not present the default layout will be used.

Layouts are stored in the _layouts directory. Layouts can have their own configuration too. If you look at the tags.tpl file in the _layouts directory for example, you’ll see the following:

<!-- @@
name: tags
generated: true
thistag: "xxx"
robots: noindex, follow
@@ -->
{extends file="default.tpl"}
{block name=content}
    {include "includes/cattag-block.tpl" suff="tag" suffp="tags" cattype="tagged" arrind="tags_arr" thisitem=$page.thistag } 
{/block}

In template files, the YAML configuration section is delimited by <!-- @@ and @@ -->.

When a page is generated the individual file configuration is applied on top of the template configuration. This means that any value in the template file will be overwritten by a value of the same name in the page file.