-
Notifications
You must be signed in to change notification settings - Fork 0
/
use-cases.typ
92 lines (72 loc) · 1.32 KB
/
use-cases.typ
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
#let usecase(title, description: none, stakeholders: (), basic_flow: (), alt_flows: (), prereq: (), diagram: none) = {
let content = ()
if stakeholders.len() > 0 {
content.push([*Stakeholders*
#list(..stakeholders)
])
}
if description != none {
content.push([*Description*
#description])
}
if diagram != none {
content.push([*Diagram*: #diagram])
}
if prereq.len() > 0 {
content.push([*Prerequisites*
#list(..prereq)
])
}
if basic_flow.len() > 0 {
content.push([*Basic Flow*
#list(..basic_flow)
])
}
if alt_flows.len() > 0 {
for alt_flow in alt_flows {
content.push([*Alternate Flow*
#list(..alt_flow)
])
}
}
// prevent splitting individual blocks between pages
// content = content.map(c => {
// block(
// breakable: false,
// c,
// )
// })
figure(
align(left, table(
columns: 1,
..content,
)),
caption: figure.caption(
position: top,
title
),
supplement: [Use Case],
kind: "usecase",
)
}
#let userstory(stakeholder, want, why) = {
let content = [As a *#stakeholder*, I want *#want* so that *#why*]
figure(
[],
caption: content,
supplement: [User Story],
kind: "userstory",
)
}
= Testing
#usecase(
[Foo],
description: "This is a foo use case",
) <foo>
Link to @foo
#userstory(
[User],
[foo],
[bar],
) <bar>
Link to @bar