-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path_resume2023.typ
More file actions
108 lines (93 loc) · 2.63 KB
/
Copy path_resume2023.typ
File metadata and controls
108 lines (93 loc) · 2.63 KB
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
97
98
99
100
101
102
103
104
105
106
107
108
#{
let primary_color = rgb("#154c79")
let resume = yaml("/_data/resume.yml")
set document(
title: resume.whoami + "'s Resume",
author: resume.whoami,
)
set page(
"us-letter",
margin: (x: 54pt, y: 52pt),
// Sets the page header to the last level 2 header followed by " (Continued)"
header: locate(loc => {
let elems = query(
selector(heading.where(level: 2)).before(loc),
loc,
)
if elems != () {
let body = elems.last().body
heading(level: 2, body + " (Continued)")
}
})
)
set text(9.8pt, font: "IBM Plex Sans")
show heading.where(level: 1): it => text(
fill: primary_color,
it.body
)
show heading.where(level: 3): it => text(
fill: primary_color,
it.body
)
let icon(name, shift: 1.5pt, height: 10pt, left: 1pt) = {
box(
baseline: shift,
height: height,
image("/assets/icons/" + name + ".svg")
)
h(left)
}
[
#stack(
dir: ltr,
align(start + horizon)[= #resume.whoami],
align(end, grid(
columns: 2,
gutter: 10pt,
"",
link(resume.contactPoints.email.link)[#icon("mail") #resume.contactPoints.email.text],
link(resume.contactPoints.website.link)[#icon("link-2") #resume.contactPoints.website.text],
link(resume.contactPoints.github.link)[#icon("github") #resume.contactPoints.github.text]
))
)
#line(length: 100%, stroke: 1pt + primary_color)
#resume.aboutMe \
*Primary Technologies:* #resume.primaryTechnologies.join(", ")
*Comfortable Tools & Platforms:* #resume.primaryTools.join(", ")
== Notable Work
#list(..resume.notableWork)
== Professional Experience
#for job in resume.workExperience [
#block(
breakable: false,
[
#v(7pt)
#grid(
columns: (1fr, auto),
stack(
dir: ttb, spacing: 5pt,
[
=== #job.role
#text(7pt, smallcaps(job.at("hats", default: ()).join(" / ")))
],
text(9pt)[#icon("calendar", height: 9pt) #eval(job.duration, mode: "markup")]
),
align(end, stack(
dir: ttb, spacing: 5pt,
text(10pt, style: "oblique")[
#if job.at("link", default: none) != none [
#link(job.link)[#job.company]
] else [
#job.company
]
],
text(8pt)[#icon("map-pin", height: 8pt) #job.location],
))
)
#v(3pt)
#list(..job.highlights)
]
)
]
]
}