aboutsummaryrefslogtreecommitdiff

Map

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

Building

Open the project in Xcode and press the run button (or make build)

Testing

Open the project in Xcode and press the test button (or make test)

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.