200 lines
3.1 KiB
Typst
200 lines
3.1 KiB
Typst
#let pill(fill, content) = {
|
|
block(
|
|
inset: 4pt,
|
|
fill: fill,
|
|
radius: 3pt,
|
|
text(black, [#content]),
|
|
)
|
|
}
|
|
|
|
#let education(degree, university, from, to, location) = {
|
|
grid(
|
|
align: horizon,
|
|
rows: (auto, auto),
|
|
columns: (auto, auto, auto),
|
|
grid.cell(
|
|
inset: (
|
|
bottom: 6pt,
|
|
),
|
|
colspan: 3,
|
|
stack(
|
|
dir: ltr,
|
|
spacing: 6pt,
|
|
text(13pt, [*#degree*]),
|
|
pill(luma(230), [#from - #to]),
|
|
pill(luma(200), location),
|
|
),
|
|
),
|
|
text(luma(90), [*#university*]),
|
|
)
|
|
|
|
v(4pt)
|
|
}
|
|
|
|
#let work(role, company, from, to, location, content) = {
|
|
grid(
|
|
align: horizon,
|
|
rows: (auto, auto),
|
|
columns: (auto, auto, auto),
|
|
grid.cell(
|
|
inset: (
|
|
bottom: 6pt,
|
|
),
|
|
colspan: 3,
|
|
stack(
|
|
dir: ltr,
|
|
spacing: 6pt,
|
|
text(13pt, [*#role*]),
|
|
pill(luma(230), [#from - #to]),
|
|
pill(luma(200), location),
|
|
),
|
|
),
|
|
text(luma(90), [*#company*]),
|
|
)
|
|
|
|
content
|
|
}
|
|
|
|
#let cover(
|
|
short,
|
|
name,
|
|
contacts,
|
|
position,
|
|
company,
|
|
motivation
|
|
) = {
|
|
set page(
|
|
paper: "a4",
|
|
margin: 30pt
|
|
)
|
|
set text(11pt, font: "Victor Mono")
|
|
|
|
show link: it => {
|
|
set text(red)
|
|
underline(it)
|
|
sym.space.nobreak
|
|
sym.arrow.tr
|
|
}
|
|
|
|
stack(
|
|
dir: ltr,
|
|
spacing: 12pt,
|
|
block(
|
|
height: 165pt,
|
|
clip: true,
|
|
radius: 10pt,
|
|
image("../assets/profile.jpg"),
|
|
),
|
|
block(
|
|
height: 165pt,
|
|
width: 355pt,
|
|
radius: 10pt,
|
|
fill: black,
|
|
inset: (
|
|
top: 16pt,
|
|
left: 18pt,
|
|
right: 18pt,
|
|
),
|
|
stack(
|
|
spacing: 20pt,
|
|
stack(
|
|
dir: ltr,
|
|
spacing: 10pt,
|
|
text(red, 22pt, [\$ dennis\@schöpf \~>]),
|
|
text(white, 22pt, [./cv.sh]),
|
|
),
|
|
stack(
|
|
for (desc, contact) in contacts [
|
|
#block(
|
|
[#text(
|
|
luma(200),
|
|
11pt,
|
|
desc
|
|
),
|
|
#text(
|
|
white,
|
|
11pt,
|
|
contact
|
|
)]
|
|
)
|
|
],
|
|
),
|
|
),
|
|
),
|
|
)
|
|
|
|
text(size: 22pt, weight: 800, [Bewerbung zum #(position)])
|
|
|
|
block(company.join("\n"))
|
|
|
|
v(12pt)
|
|
|
|
text(size: 18pt, [Guten Tag!])
|
|
|
|
v(6pt)
|
|
|
|
[#(motivation):]
|
|
|
|
v(6pt)
|
|
|
|
[
|
|
- Lebenslauf
|
|
- Arbeitszeugnisse
|
|
- Akademische Zeugnisse
|
|
]
|
|
|
|
|
|
v(12pt)
|
|
|
|
[Mit freundlichen Grüßen,]
|
|
|
|
v(48pt)
|
|
|
|
name
|
|
|
|
}
|
|
|
|
#let cv(
|
|
short,
|
|
name,
|
|
doc
|
|
) = {
|
|
set page(
|
|
paper: "a4",
|
|
margin: 12pt
|
|
)
|
|
set text(size: 11pt, font: "Victor Mono")
|
|
|
|
show link: it => {
|
|
set text(red)
|
|
underline(it)
|
|
sym.space.nobreak
|
|
sym.arrow.tr
|
|
}
|
|
|
|
stack(
|
|
spacing: 20pt,
|
|
block(
|
|
radius: 10pt,
|
|
width: 100%,
|
|
fill: black,
|
|
inset: (
|
|
top: 16pt,
|
|
left: 18pt,
|
|
bottom: 16pt,
|
|
),
|
|
stack(
|
|
spacing: 12pt,
|
|
stack(
|
|
dir: ltr,
|
|
spacing: 10pt,
|
|
text(red, 22pt, [\$ dennis\@schöpf \~>]),
|
|
text(white, 22pt, [*Lebenslauf*]),
|
|
),
|
|
),
|
|
),
|
|
)
|
|
|
|
set align(left)
|
|
doc
|
|
}
|