Jekyll was the first static generator to introduce the concept of “front matter,” a way of annotating templates or Markdown files with meta data. Front matter is a bit of YAML at the top of any text file, indicated by three leading and following hyphens (
title: A blog post
tags: ["meta", "yaml"]
# Blogpost with meta data
This is a short example of a Markdown document with meta data as front matter.
Since version 2.0, Jekyll supports collections. A collection is a folder with Markdown documents.
There is the Roots Dynamic Content extension, which gives you something similar to Jekyll’s collections with front matter and a Jade body. There’s also my own Roots Posts extension, which adds collections in Markdown plus front matter, just like Jekyll.
The Records and YAML extensions add support for data files that can be pulled into any template. The former will even fetch data from any URL and make it available from the templates.
A similar extension is Roots Contentful, which Carrot blogged about in its article “Building a Static CMS.” The extension pulls in content from Contentful’s API and lets you filter and iterate over it.
Hugo has the most powerful content model out of the box of any of the static website generators.
Content is grouped into sections with entries. Sections can be nested as a tree:
| ├── firstpost.md // <- http://site/post/firstpost/
| ├── happy
| | └── ness.md // <- http://site/post/happy/ness/
| └── secondpost.md // <- http://site/post/secondpost/
├── first.md // <- http://site/quote/first/
└── second.md // <- http://site/quote/second/