Architecture Overview
Gozzi is a fast static site generator built with Go.
Core Principles
Concurrent Processing
- Uses goroutines for parallel operations
- Worker pools for file processing
Clean Separation
- Config, Parser, Builder, Server components
- Clear responsibilities for each component
Hot Reloading
- File watching during development
- Live reload via Server-Sent Events
Main Components
Config
Loads and manages configuration from TOML files.
Parser
- Parses Markdown files
- Extracts front matter
- Builds content tree
Builder
- Loads templates
- Generates HTML files
- Copies static assets
Server
- Development server with live reload
- File watching for changes
- Automatic rebuilds
How It Works
Build Process
- Load Config - Read
config.toml - Parse Content - Process all
.mdfiles - Load Templates - Load from
templates/directory - Generate Site - Render HTML, copy assets
Serve Process
- Initial Build - Same as build process
- Start Server - HTTP server on specified port
- Watch Files - Monitor for changes
- Auto Reload - Browser refreshes on changes
Learn More
- Build Flow - Detailed build process
- Serve Flow - Development server details
- Content Processing - How content is parsed
- Template System - Template resolution