Compare commits

...

4 commits

Author SHA1 Message Date
349119e6d4
feat(resume): Allow toggling longform for main body contents 2025-09-15 10:30:14 +02:00
16b561ff86
fix(content): Refine German Consultancy description
While the official title was accurate, this provides a more fitting
description of my day-to-day activities.
2025-09-15 10:30:13 +02:00
8972f3c687
fix(content): Generalize mainbranch location to Berlin 2025-09-15 10:30:12 +02:00
febdcb9796
feat(lib): Add entry hiding with content boolean
Add the simple value `hidden: true` to any entry (experience, education,
volunteering, skills, language, etc) and it will not be displayed on the
final output.
2025-09-15 10:30:11 +02:00
4 changed files with 31 additions and 23 deletions

View file

@ -1,7 +1,7 @@
about:
fullname: Marty Oehme
contact:
- text: Pichelsdorfer Str. 133, 13595 Berlin, Germany
- text: Berlin, Germany
icon:
- text: contact@martyoeh.me
icon:
@ -36,7 +36,7 @@ summary:
experience_types:
1:
de: Selbstständiger Schriftsteller Forschung
de: Selbstständiger Consultant Forschung
en: Independent research consultant
2:
de: Honorararbeit

View file

@ -64,7 +64,10 @@
block(inset: 5%, width: 85%, text(fill: luma(150), body))
}
#let entry(item: ()) = {
#let entry(item: (), show_sublists: true) = {
if "hidden" in item and item.hidden == true {
return
}
if "title" in item {
[*#item.title.at(lang)*]
}
@ -78,15 +81,17 @@
if "date" in item {
[ _#item.date.at(lang)_ \ ]
}
if "bullets" in item {
for bullet in item.bullets {
[- #bullet.at(lang)]
if show_sublists == true {
if "bullets" in item {
for bullet in item.bullets {
[- #bullet.at(lang)]
}
}
}
if "modules" in item {
subdued[Relevante Module:]
for bullet in item.modules {
subdued[ - #bullet.at(lang)]
if "modules" in item {
subdued[Relevante Module:]
for bullet in item.modules {
subdued[ - #bullet.at(lang)]
}
}
}
if "publication" in item {
@ -126,11 +131,11 @@
horizon_line()
};
#let section(title: "Section", entries: (), body) = {
#let section(title: "Section", entries: (), longform: true, body) = {
section_header(title)
if body == none or body == [] {
for e in entries {
entry(item: e)
entry(item: e, show_sublists: longform)
}
} else {
body

View file

@ -1,7 +1,7 @@
#import "lib.typ": *
#import "wrapit.typ": *
#let create_body(main: (), contents: (:)) = {
#let create_body(main: (), contents: (:), longform: true) = {
for item in main {
if item == "summary" and "summary" in contents {
section(
@ -9,36 +9,37 @@
{
contents.summary.at(lang)
},
longform: longform
)
}
if item == "experience_by_type" and "experience" in contents {
let title = (en: "Professional Experience", de: "Berufserfahrung").at(lang)
section(title: title)[]
section(title: title, longform: longform)[]
by_experience_type(experience: contents.experience, type: contents.experience_types)
}
if item == "experience_by_client" and "experience" in contents {
let title = (en: "Professional Experience", de: "Berufserfahrung").at(lang)
section(title: title)[]
section(title: title, longform: longform)[]
by_client(experience: contents.experience)
}
if item == "experience" and "experience" in contents {
let title = (en: "Professional Experience", de: "Berufserfahrung").at(lang)
section(title: title, entries: contents.experience)[]
section(title: title, entries: contents.experience, longform: longform)[]
}
if item == "education" and "education" in contents {
let title = (en: "Education", de: "Ausbildung").at(lang)
section(title: title, entries: contents.thesis + contents.education)[]
section(title: title, entries: contents.thesis + contents.education, longform: longform)[]
}
if item == "volunteering" and "volunteering" in contents {
let title = (en: "Volunteer Work", de: "Ehrenamt").at(lang)
section(title: title, entries: contents.volunteering)[]
section(title: title, entries: contents.volunteering, longform: longform)[]
}
if item == "digital" and "digital" in contents {
let title = (en: "Digital Organization", de: "Digitales Schaffen").at(lang)
section(title: title, entries: contents.digital)[]
section(title: title, entries: contents.digital, longform: longform)[]
}
if item == "skills" and "skills" in contents {
@ -48,6 +49,7 @@
{
sidebar_entry(item: contents.skills)
},
longform: longform
)
}
@ -58,6 +60,7 @@
{
sidebar_entry(item: contents.languages)
},
longform: longform
)
}
}
@ -91,7 +94,7 @@
}
}
#let resume(contents, main: ("experience_by_type", "education"), sidebar: ("volunteering", "languages", "skills")) = {
#let resume(contents, main: ("experience_by_type", "education"), sidebar: ("volunteering", "languages", "skills"), longform:true) = {
show: style
set text(lang: lang)
@ -158,7 +161,7 @@
} else { [] }
wrap-content(
sb,
create_body(main: main, contents: contents),
create_body(main: main, contents: contents, longform: longform),
align: top + right,
columns: (auto, 30%),
)

View file

@ -1,3 +1,3 @@
#import "lib/resume.typ": resume
#resume.with()(yaml("content.yml"))
#resume.with(longform: false)(yaml("content.yml"))