Project Layout
A minimal dodeca site is a directory with:
.config/dodeca.yaml(required)content/(required)templates/(required)
Common optional directories:
static/for files copied through to output (images, robots.txt, etc.)sass/forsass/main.scss(if you want SCSS compilation)data/for structured data files loaded into templates
Example layout
my-site/
├── .config/
│ └── dodeca.yaml
├── content/
│ ├── _index.md
│ └── guide/
│ ├── _index.md
│ └── intro.md
├── templates/
│ ├── base.html
│ ├── index.html
│ ├── section.html
│ └── page.html
├── static/
│ └── images/
│ └── logo.png
└── public/ # build output (configured via dodeca.yaml)
Content model
- A folder under
content/is a section. - A section’s landing page/content comes from
_index.mdinside that folder. - Other Markdown files in a section are pages.
Markdown files can start with TOML frontmatter delimited by +++:
toml
+++
title = "Intro"
description = "Optional"
weight = 10
+++
Templates
dodeca looks for these templates under templates/:
index.htmlrenders the root section (/)section.htmlrenders non-root sectionspage.htmlrenders individual pages
Templates can use {% extends "base.html" %} and blocks. See Template Engine for the full template/context reference.