Generates a Mermaid flowchart diagram from putior workflow data, showing the flow of data through your analysis pipeline.
Usage
put_diagram(
workflow,
output = "console",
file = "workflow_diagram.md",
title = NULL,
direction = "TD",
node_labels = "label",
show_files = FALSE,
show_artifacts = FALSE,
show_workflow_boundaries = TRUE,
style_nodes = TRUE,
theme = "light"
)
Arguments
- workflow
Data frame returned by
put()
containing workflow nodes- output
Character string specifying output format. Options:
"console" - Print to console (default)
"file" - Save to file specified by
file
parameter"clipboard" - Copy to clipboard (if available)
"raw" - Return raw mermaid code without markdown fences (for knitr/pkgdown)
- file
Character string specifying output file path (used when output = "file")
- title
Character string for diagram title (optional)
- direction
Character string specifying diagram direction. Options: "TD" (top-down), "LR" (left-right), "BT" (bottom-top), "RL" (right-left)
- node_labels
Character string specifying what to show in nodes: "name" (node IDs), "label" (descriptions), "both" (ID: label)
- show_files
Logical indicating whether to show file connections
- show_artifacts
Logical indicating whether to show data files as nodes. When TRUE, creates nodes for all input/output files, not just script connections. This provides a complete view of the data flow including terminal outputs.
- show_workflow_boundaries
Logical indicating whether to apply special styling to nodes with node_type "start" and "end". When TRUE, these nodes get distinctive workflow boundary styling (icons, colors). When FALSE, they render as regular nodes.
- style_nodes
Logical indicating whether to apply styling based on node_type
- theme
Character string specifying color theme. Options: "light" (default), "dark", "auto" (GitHub adaptive), "minimal", "github"
Examples
if (FALSE) { # \dontrun{
# Basic usage - shows only script connections
workflow <- put("./src/")
put_diagram(workflow)
# Show all data artifacts as nodes (complete data flow)
put_diagram(workflow, show_artifacts = TRUE)
# Show artifacts with file labels on connections
put_diagram(workflow, show_artifacts = TRUE, show_files = TRUE)
# Show workflow boundaries with special start/end styling
put_diagram(workflow, show_workflow_boundaries = TRUE)
# Disable workflow boundaries (start/end nodes render as regular)
put_diagram(workflow, show_workflow_boundaries = FALSE)
# GitHub-optimized theme for README files
put_diagram(workflow, theme = "github")
# Save to file with artifacts enabled
put_diagram(workflow, show_artifacts = TRUE, output = "file", file = "workflow.md")
# For use in knitr/pkgdown - returns raw mermaid code
# Use within a code chunk with results='asis'
cat("```mermaid\n", put_diagram(workflow, output = "raw"), "\n```\n")
} # }