Thanks to visit codestin.com
Credit goes to github.com

Skip to content

bearcove/dodeca

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dodeca

MIT + Apache 2.0 salsa | yes please

A fully incremental static site generator.

Philosophy

Dev mode = Production mode. Unlike other static site generators that take shortcuts in development (skipping minification, using original asset paths, etc.), dodeca serves exactly what you'll get in production: cache-busted URLs, minified HTML, subsetted fonts, responsive images—the works. Even font subsetting runs in dev!

This is possible because dodeca uses Salsa for incremental computation. Every transformation is a cached query. Change a file and only the affected queries re-run. First page load builds what's needed; subsequent requests are instant.

Custom template engine. Dodeca includes its own Jinja-like template engine. This gives you the power of a real language (conditionals, loops, variable interpolation) without the complexity of learning a new syntax. The engine includes rich diagnostics with line/column information for template errors.

Plugin architecture. Dodeca's plugin system (via the plugcard crate) allows extending the build pipeline without modifying the core. Image optimization, CSS processing, syntax highlighting, and more can be plugged in independently.

Getting Started

Install dodeca:

cargo install dodeca

Create a new site:

ddc init my-site
cd my-site
ddc serve

This starts a development server at http://localhost:8080 with live reload.

Key Features

  • Incremental builds: Only affected files are re-processed on changes
  • Cache-busted URLs: Assets get unique names based on content hash
  • Image optimization: Built-in image processing with responsive variants
  • Font subsetting: Automatically subset fonts to used characters
  • HTML minification: Minify HTML in production builds
  • Template engine: Powerful, easy-to-learn Jinja-like templates
  • Code execution: Execute code samples and capture output
  • Link checking: Verify all links in your site
  • Extensible: Plugin system for custom transformations

Structure

The dodeca workspace includes:

  • dodeca: Main SSG binary (ddc CLI)
  • gingembre: Template engine with rich diagnostics
  • plugcard: Plugin system for extending the build pipeline
  • dodeca-*: Individual plugins for various transformations
  • livereload-client: WASM client for live reload in development

Development

Build everything:

cargo xtask build

Run tests:

cargo test --workspace

Build the documentation:

cargo doc --workspace --no-deps --open

Contributing

Contributions are welcome! Please open issues and pull requests on GitHub.

Sponsors

Thanks to all individual sponsors:

GitHub Sponsors Patreon

...along with corporate sponsors:

AWS Zed Depot

...without whom this work could not exist.

License

Licensed under either of:

at your option.