diff --git a/resume.typ b/resume.typ index f878a17..9c006fd 100644 --- a/resume.typ +++ b/resume.typ @@ -59,14 +59,16 @@ block(inset: 5%, width: 85%, text(fill:luma(150), body)) } -#let freelance_by_client(experience:()) = { +#let by_client(experience:()) = { let by_client = (:) + for item in experience { let client = item.place.at(lang) if client not in by_client { by_client.insert(client, ()) + } - by_client.at(client).push((item.title.at(lang), item.date.at(lang) )) + by_client.at(client).push( (item.title.at(lang), item.date.at(lang)) ) } for (client, jobs) in by_client { @@ -77,6 +79,23 @@ } } +#let by_experience_type(type:(), experience:()) = { + let by_ty = (:) + for (id, desc) in type { + let matching_exp_items = (); + // for item in experience { + // [itemtypeid: #item.typeid, id: #id] + // if item.typeid == id { + // matching_exp_items.push(item) + // } + // } + let matching_exp_items = experience.filter(item => + int(item.typeid) == int(id)) + [=== _#desc.at(lang)_] + by_client(experience: matching_exp_items) + } +} + #let entry(item: ()) = { if "title" in item { [*#item.title.at(lang)*] @@ -193,8 +212,7 @@ if "experience" in contents { let title = sel_word_lang(en:"Professional Experience", de:"Berufserfahrung") section(title: title)[] - freelance_by_client(experience:contents.experience) - + by_experience_type(experience: contents.experience, type: contents.experience_types) } if "education" in contents { @@ -229,7 +247,7 @@ for e in contents.volunteering { [ - *#e.title.at(lang)* (#e.date.at(lang)) - #par(e.bullets.at(0).at(lang)) \ + #par(e.bullets.at(0).at(lang)) \ ] } }