-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.typ
56 lines (49 loc) · 1.17 KB
/
test.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
#import "/src/definition.typ"
#definition.add-handler(
"function",
it => block(stroke: gray, inset: 1em, {
raw(it.name + "()")
[#metadata(()) #label("func:" + it.name)]
linebreak()
for arg in it.args {
definition.define(it.name + ":" + arg.name, "function:argument", arg)
}
}),
it => link(label("func:" + it.name), raw(it.name + "()")),
)
#definition.add-handler(
"function:argument",
it => block(stroke: gray, width: 100%, inset: 1em, {
raw(it.name)
[#metadata(()) #label("arg:" + it.func + ":" + it.name)]
linebreak()
it.description
}),
it => link(label("arg:" + it.func + ":" + it.name), raw(it.func + "." + it.name)),
)
#definition.define("func", "function", (
name: "func",
args: (
(
func: "func",
name: "arg1",
description: "First argument of function func.",
),
(
func: "func",
name: "arg2",
description: "Second argument of function func.",
),
),
))
#show ref: it => {
let target = str(it.target)
if target in definition.definitions.final() {
box(stroke: red, definition.handle(target, definition.ctx.ref))
} else {
it
}
}
@func
@func:arg1
@func:arg2