aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 759c8d04dfa0d1ba0fba1b41c903c4dfa1d06367 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# 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][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.`

[swift-format]: https://github.com/apple/swift-format.git

## Statement of Former LLM Use

At a point during construction of this app, I begun LLM use. Features that
were built with this assistance are some of the preference panes, sharing,
and tests.

Since then I've stopped using LLMs and don't plan to use them, as such I am
trying to remove the llm contributions and replace them from a nonslop base.

As I no longer use macOS as my main OS, this will be a bit of a slow process.