init project running
a scraper for jobs in the region with connected telegram bot to send my new jobs every day
This commit is contained in:
commit
fa4623b586
50 files changed
+1613
No files matched your search
@@ -0,0 +1,175 @@
|
||||
// Gemeinsames, eigenständiges Layout für beide Bewerbungsdokumente.
|
||||
#let accent = rgb("#0395de")
|
||||
#let ink = rgb("#333333")
|
||||
#let dark-ink = rgb("#414141")
|
||||
#let gray-ink = rgb("#3a3a5d")
|
||||
#let rule-ink = rgb("#5d5d5d")
|
||||
#let pale = rgb("#999999")
|
||||
|
||||
#let today = datetime.today()
|
||||
#let month-names = (
|
||||
"Januar", "Februar", "März", "April", "Mai", "Juni",
|
||||
"Juli", "August", "September", "Oktober", "November", "Dezember",
|
||||
)
|
||||
#let today-de = (
|
||||
str(today.day()) + ". " + month-names.at(today.month() - 1) +
|
||||
" " + str(today.year())
|
||||
)
|
||||
|
||||
#let document-base(body) = {
|
||||
set text(font: "Source Sans Pro", lang: "de", size: 9pt, weight: 300, fill: ink)
|
||||
set par(leading: 0.48em)
|
||||
body
|
||||
}
|
||||
|
||||
#let name-mark(
|
||||
person,
|
||||
size: 22pt,
|
||||
family: "Roboto",
|
||||
first-weight: 100,
|
||||
first-smallcaps: false,
|
||||
) = [
|
||||
#text(font: family, size: size, weight: first-weight, fill: gray-ink)[
|
||||
#if first-smallcaps { smallcaps(person.first) } else { person.first }
|
||||
]#h(3pt)#text(font: family, size: size, weight: 700, fill: ink)[#person.last]
|
||||
]
|
||||
|
||||
#let fa(glyph) = text(font: "FontAwesome", size: 0.95em)[#glyph]
|
||||
|
||||
#let cover-header(person) = block(width: 100%)[
|
||||
#align(center)[
|
||||
#name-mark(person, size: 32pt)
|
||||
#v(1pt)
|
||||
#text(font: "Source Sans Pro", size: 7.6pt, weight: 400, fill: accent)[
|
||||
#smallcaps(person.position)
|
||||
]
|
||||
#v(2pt)
|
||||
#text(font: "Roboto", size: 8pt, weight: 400, style: "italic", fill: pale)[
|
||||
#person.street, #person.city
|
||||
]
|
||||
#v(3pt)
|
||||
#text(font: "Roboto", size: 6.8pt, weight: 400, fill: ink)[
|
||||
#fa("\u{f10b}") #person.mobile #h(7pt)|#h(7pt)
|
||||
#fa("\u{f0e0}") #person.email #h(7pt)|#h(7pt)
|
||||
#fa("\u{f092}") #person.github #h(7pt)|#h(7pt)
|
||||
#fa("\u{f169}") #person.xing
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
#let cv-header(person) = block(width: 100%, below: 33pt)[
|
||||
#grid(
|
||||
columns: (1fr, 1.8fr, 1fr),
|
||||
column-gutter: 6pt,
|
||||
align: (left, center, right),
|
||||
[
|
||||
#text(font: "Roboto", size: 8pt, weight: 400, style: "italic", fill: pale)[
|
||||
#person.street\
|
||||
#person.city
|
||||
]
|
||||
],
|
||||
align(center)[
|
||||
#name-mark(
|
||||
person,
|
||||
family: "Source Sans Pro",
|
||||
first-weight: 400,
|
||||
first-smallcaps: true,
|
||||
)
|
||||
#v(2pt)
|
||||
#text(font: "Source Sans Pro", size: 7.6pt, weight: 400, fill: accent)[
|
||||
#smallcaps("Lebenslauf")
|
||||
]
|
||||
],
|
||||
[
|
||||
#text(font: "Roboto", size: 6.8pt, weight: 400, fill: ink)[
|
||||
#fa("\u{f10b}") #person.mobile\
|
||||
#fa("\u{f0e0}") #person.email\
|
||||
#fa("\u{f169}") #person.xing\
|
||||
#fa("\u{f092}") #person.github
|
||||
]
|
||||
],
|
||||
)
|
||||
]
|
||||
|
||||
#let cv-footer(person) = context grid(
|
||||
columns: (1fr, 1fr, 1fr),
|
||||
align: (left, center, right),
|
||||
text(font: "Source Sans Pro", size: 8pt, weight: 400, fill: pale)[#smallcaps(today-de)],
|
||||
text(font: "Source Sans Pro", size: 8pt, weight: 400, fill: pale)[
|
||||
#smallcaps(person.first + " " + person.last + " · Lebenslauf")
|
||||
],
|
||||
text(font: "Source Sans Pro", size: 8pt, weight: 400, fill: pale)[#counter(page).display()],
|
||||
)
|
||||
|
||||
#let cover-footer(person) = align(center)[
|
||||
#text(font: "Source Sans Pro", size: 8pt, fill: pale, weight: 400)[
|
||||
#smallcaps(person.first + " " + person.last)
|
||||
]
|
||||
]
|
||||
|
||||
#let section(accent-part, rest) = block(
|
||||
width: 100%,
|
||||
above: 8pt,
|
||||
below: 5pt,
|
||||
breakable: false,
|
||||
)[
|
||||
#grid(
|
||||
columns: (auto, 1fr),
|
||||
column-gutter: 2pt,
|
||||
align: horizon,
|
||||
text(font: "Source Sans Pro", size: 16pt, weight: 700)[
|
||||
#text(fill: accent)[#accent-part]#text(fill: ink)[#rest]
|
||||
],
|
||||
line(length: 100%, stroke: 0.9pt + rule-ink),
|
||||
)
|
||||
]
|
||||
|
||||
#let bullet-list(items) = {
|
||||
for item in items {
|
||||
block(width: 100%)[
|
||||
#grid(
|
||||
columns: (7pt, 1fr),
|
||||
column-gutter: 1pt,
|
||||
[•],
|
||||
item,
|
||||
)
|
||||
]
|
||||
v(-5pt)
|
||||
}
|
||||
}
|
||||
|
||||
#let entry(role, organization, location, period, items) = block(
|
||||
width: 100%,
|
||||
above: 15pt,
|
||||
below: 18pt,
|
||||
breakable: false,
|
||||
)[
|
||||
#grid(
|
||||
columns: (1fr, auto),
|
||||
column-gutter: 8pt,
|
||||
row-gutter: 9pt,
|
||||
text(font: "Source Sans Pro", size: 10pt, weight: 700, fill: dark-ink)[#organization],
|
||||
text(font: "Source Sans Pro", size: 9pt, weight: 300, style: "italic", fill: accent)[#location],
|
||||
text(font: "Source Sans Pro", size: 8pt, weight: 400, fill: gray-ink)[#smallcaps(role)],
|
||||
text(font: "Source Sans Pro", size: 8pt, weight: 300, style: "italic", fill: gray-ink)[#period],
|
||||
)
|
||||
#parbreak()
|
||||
#v(1pt)
|
||||
#block(width: 100%)[
|
||||
#text(font: "Source Sans Pro", size: 9pt, weight: 300, fill: ink)[#bullet-list(items)]
|
||||
]
|
||||
]
|
||||
|
||||
#let skills(body, above: 16pt, below: 12pt) = block(
|
||||
width: 100%,
|
||||
inset: (top: above, bottom: below),
|
||||
body,
|
||||
)
|
||||
|
||||
#let skill(label, value) = grid(
|
||||
columns: (45mm, 1fr),
|
||||
column-gutter: 5mm,
|
||||
align: (right, left),
|
||||
text(font: "Source Sans Pro", size: 10pt, weight: 700, fill: dark-ink)[#label],
|
||||
text(font: "Source Sans Pro", size: 9pt, weight: 300, fill: ink)[#value],
|
||||
)
|
||||
Reference in new issue
Block a user