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:

  1. Provides metadata for the section (title, description)
  2. Triggers section listing behavior
  3. Appears in the navigation

Directories without _index.md are ignored.

Navigation builds automatically from:

  • Top-level .md files (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
---

Hierarchical Navigation

When nav.nested = true in your config, section children appear as nested sub-items:

Features           ← Section link
  ├─ Templates     ← Child page
  ├─ Sections      ← Child page
  └─ Highlighting  ← Child page
Getting Started    ← Top-level page

Child pages inherit their parent section's position in the nav tree. Within a section, children sort by weight then alphabetically.

Without nested navigation (the default), only top-level items appear in the nav.

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.html per page)