Content is organized into Summary objects, which contain Category objects, which in turn contain PageSummary objects. This structure allows you to map markdown files in your content/ folder to a structured site hierarchy.
PageSummary fields:
date: String date of the post.title: The page title.description: A brief summary.folder: The subfolder name.markdown: The filename (e.g., hello-world.md).author: Optional author name.image / open_graph_image: Optional image paths.
let blog_summary = Summary {
source_folder: "blog",
categories: vec![Category {
name: "Announcements".to_string(),
pages: vec![PageSummary {
date: "2026-02-06",
title: "Hello, world",
description: "First post from the new site.",
folder: "hello-world",
markdown: "hello-world.md",
image: None,
open_graph_image: None,
author: Some("Ada Lovelace"),
author_image: None,
}],
}],
};