Skip to main content

Crate utf8proj_render

Crate utf8proj_render 

Source
Expand description

§utf8proj-render

Rendering backends for utf8proj schedules.

This crate provides:

  • Interactive HTML Gantt chart rendering
  • SVG Gantt chart rendering
  • MermaidJS Gantt chart rendering (for Markdown/docs)
  • PlantUML Gantt chart rendering (for wikis and documentation)
  • Excel costing reports (for corporate project quoting)
  • Text-based output
  • Custom renderer trait

§Example

use utf8proj_core::{Project, Schedule, Renderer};
use utf8proj_render::{HtmlGanttRenderer, SvgRenderer, MermaidRenderer, PlantUmlRenderer};

// Interactive HTML Gantt chart
let renderer = HtmlGanttRenderer::new();
let html = renderer.render(&project, &schedule)?;

// Pure SVG output
let svg_renderer = SvgRenderer::default();
let svg = svg_renderer.render(&project, &schedule)?;

// MermaidJS for Markdown/documentation
let mermaid_renderer = MermaidRenderer::new();
let mermaid = mermaid_renderer.render(&project, &schedule)?;

// PlantUML for wikis and documentation
let plantuml_renderer = PlantUmlRenderer::new();
let plantuml = plantuml_renderer.render(&project, &schedule)?;

// Excel costing report
let excel_renderer = ExcelRenderer::new().currency("€");
let xlsx_bytes = excel_renderer.render(&project, &schedule)?;
std::fs::write("project_cost.xlsx", xlsx_bytes)?;

Re-exports§

pub use excel::ExcelConfig;
pub use excel::ExcelRenderer;
pub use excel::ScheduleGranularity;
pub use gantt::FocusConfig;
pub use gantt::GanttTheme;
pub use gantt::HtmlGanttRenderer;
pub use gantt::TaskVisibility;
pub use mermaid::MermaidRenderer;
pub use plantuml::PlantUmlRenderer;

Modules§

excel
Excel costing report renderer
gantt
Interactive HTML Gantt Chart Renderer
mermaid
MermaidJS Gantt chart renderer
plantuml
PlantUML Gantt chart renderer

Structs§

SvgRenderer
SVG Gantt chart renderer configuration
TextRenderer
Plain text renderer for console output

Enums§

DisplayMode
Display mode for task labels in charts