v0.7.0
2026-05-17 · GitHub release · Diff
A big one: 228 commits since 0.6.1. Existing .mmd files render with no changes - everything new is additive.
HTML export
Section titled “HTML export”nf-metro render mypipeline.mmd --format html produces a self-contained, interactive HTML file that can be dropped into a docs page or blog post without any extra assets.
Three new %%metro directives
Section titled “Three new %%metro directives”off_track: node_id lifts file inputs above the line tracks so they sit clear of the metro lines instead of breaking them. Useful for FASTA/GTF inputs hanging off a workflow.
center_ports: true (or --center-ports) centres inter-section ports on the shorter section, tidying up many fan-in/fan-out cases.
legend_min_height: N reserves a minimum legend height so a tall map’s legend doesn’t look stranded.
Dashed and dotted line styles
Section titled “Dashed and dotted line styles”Lines can be dashed or dotted to indicate optional or conditional routes. Add a fourth field to %%metro line::
%%metro line: qc | Quality Control | #2196F3 | dashed%%metro line: optional | Optional path | #ff8800 | dottedBoth the route ink and the legend swatch reflect the style:
Richer file icons
Section titled “Richer file icons”Two new icon types join the existing single file:
files- stacked pages, for paired-end or multi-file outputsdir- folder icon, for directory outputs
All three accept an optional caption to label exactly what’s flowing in:
node[Label]:::files:Read 1, Read 2New gallery example: nf-core/differentialabundance
Section titled “New gallery example: nf-core/differentialabundance”Numbered sections in reading order
Section titled “Numbered sections in reading order”Sections are now numbered in visual reading order (left-to-right, top-to-bottom), so “1, 2, 3…” matches how you scan the map.
Layout invariant framework
Section titled “Layout invariant framework”A phase-boundary guard system (compute_layout(validate=True)) catches layout engine bugs at the offending phase rather than several phases later. Combined with full-corpus parametrised tests and the C13 row-gap runtime guard, the engine is substantially more robust to new topology patterns.
The layout pipeline is organised into six named stages with flat Stage X.Y naming.
Other improvements
Section titled “Other improvements”- Fan-in merge junctions route cleanly onto the trunk
- Per-line path grouping gives consistent line z-order where lines cross
- Animated balls no longer fly off-piste at merge junctions
- Cached
station_lines()across ~40 call sites (O(1) amortised) - New CONTRIBUTING.md