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.xml generation 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, and serve subcommands

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.toml format 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 xtask workflows
  • API Reference — Library API documentation

License

This project is licensed under the MIT License - see the License.txt file for details.