lini 0.22.0

Pretty diagrams, charts, and technical drawings from plain text, with fine-grained control. Compiles to clean, themeable SVG.
Documentation
// The development scene — every basic routing feature once, small enough to
// debug by eye. Expected: all four laws hold, ZERO crossings.
//
//   clear shot · duplicate rails · a detour around a node · a fan trunk
//   a self-loop · a bidirectional link · labels and markers

{
  direction: row; gap: 50; clearance: 10;
}

|box#ant| "Ant" { width: 60; height: 60; }
|box#wall| "Wall" { width: 60; height: 140; }
|box#bee| "Bee"
|oval#owl| "Owl"

ant -> bee "over"
// detours around Wall
ant -> ant
// self-loop: out one side, back an adjacent one
bee -> owl
// clear shot
bee -> owl
// duplicate: adjacent parallel rail
// fan: shared port and stub, trunk, split
ant -> wall & owl "fan" { along: 0.2; }
bee <-> ant "chat"
// bidirectional, also detours around Wall