aboutsummaryrefslogtreecommitdiff

Map

A wardley mapping tool: Write some text, get a diagram

Building

Open the project in Xcode and press buithe run button

Formatting and Linting

In order to format and lint the code, the project provides a Makefile that uses swift-format.

  • To format: make format
  • To lint: make lint

These commands run on every .swift file in the directory.

Language Reference

Nodes

Nodes should be of the format Name (x,y). The name can contain spaces, and the x/y can be integers or decimals. All dimensions go from 0 - 100, so 50 means 50% of the way through. eg.

  • Node (1,2)
  • My Cool Node (1.0,2.0)
  • A (1, 2.0)

Edges

Edges connect two nodes. They use the format Node -- Node (line only) or Node -> Node (with arrowhead). eg.

  • Node -- My Cool Node
  • A -> Node

Blockers

You can place a blocker in front of a node by using [Blocker] Node. eg.

  • [Blocker] My Cool Node
  • [Blocker] A

Evolution

You can draw evolution arrows by using [Evolution] Node +x or [Evolution] Node -x. eg.

  • [Evolution] My Cool Node -10
  • [Evolution] A +15

Modifying the axes

If you need more space for one of the four segments you can use [I] x, [II] x, or [III] x. eg.

  • [I] 15
  • [II] 35.5
  • [III] 80

The parser doesn't enforce position, so if you put axis iii before axis i, you'll get some rendering issues.

Groups

You can group nodes together by using [Group] NodeA, NodeB.... eg.

  • [Group] Tinker, Tailor, Soldier
  • [Group] Two Words, Three Words Here

Notes

You can add notes [Note] (x, y) Text where x and y are numbers, and Text is any text with spaces or \n.

  • [Note] (30, 45) Here we want to call out an explanation or context.
  • [Note] (90, 25) We're close to the edge \n so we can multiline it.