Content Organization
How the filesystem maps to your site structure
sukr builds your site structure from your content/ directory. No routing config needed — the filesystem is the config.
The Rule
content/foo/bar.md → public/foo/bar.html
content/about.md → public/about.html
content/_index.md → public/index.html
That's it. Paths mirror exactly, with .md becoming .html.
Directory Layout
content/
├── _index.md # Homepage (required)
├── about.md # → /about.html
├── contact.md # → /contact.html
├── blog/ # Section directory
│ ├── _index.md # → /blog/index.html (section index)
│ ├── first-post.md # → /blog/first-post.html
│ └── second-post.md # → /blog/second-post.html
└── projects/
├── _index.md # → /projects/index.html
└── my-app.md # → /projects/my-app.html
What Makes a Section
A section is any directory containing _index.md. This file:
- Provides metadata for the section (title, description)
- Triggers section listing behavior
- Appears in the navigation
Directories without _index.md are ignored.
Navigation Generation
Navigation builds automatically from:
- Top-level
.mdfiles (except_index.md) → page links - Directories with
_index.md→ section links
Items sort by weight in frontmatter (lower first), then alphabetically.
---
title: Blog
weight: 10 # Appears before items with weight > 10
---
URL Examples
| Source Path | Output Path | URL |
content/_index.md |
public/index.html |
/ |
content/about.md |
public/about.html |
/about.html |
content/blog/_index.md |
public/blog/index.html |
/blog/ |
content/blog/hello.md |
public/blog/hello.html |
/blog/hello.html |
Key Points
- No config files for routing
- Directory names become URL segments
_index.md= section index, not a regular page- Flat output structure (no nested
index.htmlper page)