feat(resume): Allow toggling longform for main body contents

This commit is contained in:
Marty Oehme 2025-09-15 10:19:49 +02:00
parent 16b561ff86
commit 349119e6d4
Signed by: Marty
GPG key ID: 4E535BC19C61886E
3 changed files with 15 additions and 12 deletions

View file

@ -131,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"))