report

Top-level DSL entry point for the KSL reporting framework.

Constructs a ReportNode.Document (the AST root) by applying block to a ReportBuilder, then wrapping the accumulated children in a ReportNode.Document.

Usage:

val doc = report("Drive-Through Pharmacy") {
section("Across-Replication Statistics") {
statTable(model.simulationReporter.acrossReplicationStatisticsList())
}
section("Histograms") {
histogram(waitTimeHistogram)
}
}
doc.showInBrowser()
doc.writeMarkdown()

The returned ReportNode.Document is a pure, immutable data structure. It can be rendered any number of times by different ksl.utilities.io.report.visitor.ReportVisitor implementations without rebuilding the tree.

Return

the assembled ReportNode.Document

Parameters

title

the document title, used as the top-level heading by all renderers

block

DSL block executed in the context of the root ReportBuilder


fun report(title: String, outputDir: Path? = null, plotDir: Path? = null, block: ReportBuilder.() -> Unit): ReportNode.Document(source)

Top-level DSL entry point with optional default output directories.

outputDir and plotDir are stored on the returned ReportNode.Document and used by the convenience render functions when the caller does not supply an explicit path or ksl.utilities.io.report.renderer.RenderContext.