34 releases (14 breaking)

1.0.0-alpha.0 Mar 12, 2026
0.17.0 Mar 12, 2026
0.16.0 Mar 7, 2026

#2694 in Text processing


Used in ox_content_napi

MIT license

50KB
1K SLoC

Rust 744 SLoC // 0.1% comments JavaScript 326 SLoC // 0.0% comments

Static Site Generation for Ox Content.

This crate provides HTML page generation for documentation sites, including navigation, table of contents, search functionality, and theming support.

Features

  • Full HTML page generation with responsive layout
  • Navigation sidebar with grouping
  • Table of contents generation
  • Client-side search integration
  • Dark/light theme support
  • Mobile-friendly responsive design
  • Customizable theme configuration

Example

use ox_content_ssg::{generate_html, PageData, NavGroup, NavItem, SsgConfig, TocEntry};

let page_data = PageData {
    title: "Getting Started".to_string(),
    description: Some("Learn how to use ox-content".to_string()),
    content: "<h1>Getting Started</h1><p>Welcome!</p>".to_string(),
    toc: vec![TocEntry { depth: 1, text: "Getting Started".to_string(), slug: "getting-started".to_string() }],
    path: "getting-started".to_string(),
    entry_page: None,
};

let nav_groups = vec![NavGroup {
    title: "Guide".to_string(),
    items: vec![NavItem {
        title: "Getting Started".to_string(),
        path: "getting-started".to_string(),
        href: "/docs/getting-started/index.html".to_string(),
    }],
}];

let config = SsgConfig {
    site_name: "My Docs".to_string(),
    base: "/docs/".to_string(),
    og_image: None,
    theme: None,
};

let html = generate_html(&page_data, &nav_groups, &config);

Dependencies

~2.2–3MB
~70K SLoC