Skip to content

Renderers Overview

Structured Goals provides multiple renderers for converting JSON documents into presentation and documentation formats.

Available Renderers

Renderer Output Format Use Case
Marp Markdown slides Presentations, stakeholder reviews
Pandoc PDF-ready Markdown Reports, documentation, printing

Renderer Interface

All DMAIC renderers implement a common interface:

type Renderer interface {
    Format() string
    FileExtension() string
    Render(doc *dmaic.DMAICDocument, opts *Options) ([]byte, error)
}

Render Options

Common options available for all renderers:

type Options struct {
    // Content inclusion
    IncludeDataPoints      bool
    IncludeRootCauses      bool
    IncludeInitiatives     bool

    // Display options
    ShowControlCharts      bool
    ShowCapabilityMetrics  bool
    GroupByPhase           bool
    GroupByStatus          bool

    // Limits
    MaxDataPoints          int

    // Styling
    Theme                  string
    CustomCSS              string

    // Metadata
    Metadata               map[string]string
}

Usage Example

import (
    "github.com/grokify/structured-goals/dmaic"
    "github.com/grokify/structured-goals/dmaic/render"
    "github.com/grokify/structured-goals/dmaic/render/marp"
    "github.com/grokify/structured-goals/dmaic/render/pandoc"
)

// Load document
doc, err := dmaic.ReadFile("metrics.json")
if err != nil {
    log.Fatal(err)
}

// Render options
opts := &render.Options{
    IncludeInitiatives: true,
    ShowControlCharts:  true,
}

// Marp slides
marpRenderer := marp.NewRenderer()
slides, err := marpRenderer.Render(doc, opts)

// Pandoc PDF-ready
pandocRenderer := pandoc.NewRenderer()
report, err := pandocRenderer.Render(doc, opts)

Output Workflow

Marp Slides

# Generate Marp markdown
genpandoc --format marp -i metrics.json -o slides.md

# Convert to PDF with Marp CLI
marp slides.md --pdf

Pandoc PDF

# Generate Pandoc markdown
genpandoc -i metrics.json -o report.md

# Convert to PDF with Pandoc
pandoc report.md -o report.pdf --pdf-engine=lualatex

Choosing a Renderer

Need Recommended Renderer
Executive presentation Marp
Printed report Pandoc
Stakeholder review Marp
Audit documentation Pandoc
Team meeting slides Marp
Archive/compliance Pandoc