Introduction
Welcome to Taxus, a Rust-based static site generator built with Tera, featuring WebAssembly "islands" for interactive components.
What is Taxus?
Taxus is a static site generator that combines:
- Tera templates for the static "sea of HTML" — page layout, content, navigation
- Markdown content with TOML frontmatter for writing pages and posts
- SCSS for modern styling
- Yew components — pre-rendered server-side at build time, hydrated by WASM in the browser for interactivity
The key insight: pages are immediately visible with no JavaScript required. Interactive components load asynchronously and attach without re-rendering.
Features
- Static-first: Pre-rendered HTML for optimal performance and SEO
- Islands Architecture: Interactive Yew WASM components embedded within static pages
- Markdown Content: Write content in Markdown files with TOML frontmatter
- Syntax Highlighting: Tree-sitter based code highlighting (Rust built in)
- Co-located Assets: Images and files in the content directory are automatically copied to output
- Hero Images: Responsive variants, WebP conversion, and
<picture>/srcset markup generated automatically - Internal Links: Reference other pages by content file path with build-time validation
- Blog Features: Summary extraction, reading time, word count, custom slugs
- Pagination: Split large collections across multiple pages
- RSS/Atom Feeds: Automatic feed generation for content syndication
- Sitemap: Automatic
sitemap.xmlgeneration with priorities and lastmod dates - Taxonomies: Tags, categories, and series for content organization
- Full-Text Search: TF-IDF search index searched client-side by the WASM client
- Development Server: Hot-reloading local server with WebSocket live reload
- CLI Interface:
build,clean,init,routes, andservesubcommands
Who is this for?
Taxus is ideal for:
- Rust developers who want to build websites without leaving their favorite language
- Performance enthusiasts who want fast, optimized static sites with selective WASM interactivity
- SEO-conscious developers who need pre-rendered content with no JavaScript dependency for initial render
- Component lovers who prefer the Yew component model for interactive UI pieces
Documentation Overview
- Getting Started — Quick start guide
- Theory — How a build works: the Site Tree, identity, derivations, a worked example, the glossary, and the reasons behind the design
- Architecture — The crates, modules, and the build pipeline stage by stage
- Content Model — The content directory as a database: rows, parent pointers, indexes
- Configuration —
site.tomlformat and options - Content — Markdown files, frontmatter, taxonomies, pagination
- Templates — Tera templates and context variables
- Images — Hero image processing and responsive variants
- Syntax Highlighting — Tree-sitter highlighting setup
- Islands Architecture — How to write and use Yew components
- Search — Client-side full-text search
- Styling — SCSS stylesheets
- CLI Reference — Command-line interface documentation
- Development Server — Hot reload and file watching
- Development — Building, testing, and
xtaskworkflows - API Reference — Library API documentation
License
This project is licensed under the MIT License - see the License.txt file for details.