v1.1.0
2026-07-01 · GitHub release · Diff
A routing-focused follow-up to 1.0.0’s rebuild, plus a new spacing control and several playground quality-of-life fixes. Existing .mmd files render with no changes.
track_gap directive and --track-gap flag
Section titled “track_gap directive and --track-gap flag”%%metro track_gap: <pixels> sets the visual gap between adjacent line strokes in a bundle - the empty space between their edges, not their centres. The default is 1 px; set it to 0 to bring strokes flush against each other, or raise it (up to 3 px) for more breathing room between co-running lines:
Packing sections into a shared grid cell
Section titled “Packing sections into a shared grid cell”Hand-placed sections (%%metro grid: <section> | <col>,<row>) can now share a cell instead of getting one section per cell:
%%metro grid: gatk, variant_calling | 1,0%%metro grid: realign, reporting | 1,1The named sections pack side-by-side along the flow axis, and the cell sizes to fit its members - so a short+long pair in one row lines up top-to-bottom with a long+short pair packed into the same column below it. This keeps folded pipelines compact and frees the cleared corner for the legend. Each member keeps its own direction, ports, and internal layout; only their placement is shared. Stacked single-row sections sharing a rowspan band now distribute across the full band instead of leaving the bottom rows empty.
Playground improvements
Section titled “Playground improvements”- Logo upload. The playground runs entirely in-browser via Pyodide, which has no access to the local filesystem, so a
%%metro logo:file path pasted in from an existing map could never resolve there. A new ”+ Logo” button reads a chosen image client-side and writes it into the directive as adata:URI. - Line gap is now a main toolbar control (next to Centre ports) instead of buried in Advanced options, wired to the new
track_gapdirective. - The build’s commit SHA is shown next to Report a bug and pre-filled into the bug report, so reports carry the exact build they came from.
- Fixed a service-worker caching bug where returning visitors kept running a stale build after every deploy, because the dev wheel’s filename never changed between builds.
Gallery
Section titled “Gallery”The nf-core pipelines page now lists an nf-core/seqinspector render, showcasing a %%metro grid: stack of two single-row sections beside a rowspan-2 section.
Notable fixes
Section titled “Notable fixes”A long tail of routing and rendering fixes, mostly in fold, bypass, and convergence handling:
- Fold-back routing: serpentine multi-line folds under
direction: RLrender correctly, fold reversal propagates through peel-off junctions, and the TB-exit-to-return-row connector no longer kinks. - Bypass routing: same-row bypasses route around (rather than through) a packed cell-mate or an intervening section, and clear exit rows run straight instead of kinking.
- Convergence sinks: entry lanes order by feeder approach direction, and interchange labels clear their connector bridge and the enlarged end-knob.
- Sectionless graphs: skip-lines with no subgraph now detour around non-consumer markers instead of breezing through them.
- 2-way fans with an internal source now centre on their equal siblings.
--modebaked output now selects the correct logo variant and pinscolor-schemeso raster exports aren’t theme-dependent.--embed-fontoutput falls back to a generic font family afterInter.