#let icon(name, shift: 0.25em) = { box( baseline: shift, height: 1.25em, image("icons/" + name + ".svg", alt: name) ) h(0.35em) } #let cv( name: "", tagline: "", links: (), paper: "a4", accent: rgb("#870c66"), heading_font: "Inter", body_font: "Inter", mono_font: "BerkeleyMono", doc, ) = { set text(size: 9pt, font: body_font, weight: "medium") set page(paper, margin: (x: 0.8cm, y: 0.8cm)) set par(justify: true) show raw: it => text(size: 1.2em, font: mono_font, baseline: -0.05em)[#it] show heading.where(level: 1): it => text( size: 1.6em, font: heading_font, tracking: 0.1pt, weight: "semibold", block[ #{it.body} ] ) show heading.where(level: 2): it => text( fill: accent, font: heading_font, tracking: 0.1pt, weight: "bold", size: 1.35em, [ #{it.body} #v(-0.85em) #line(length: 100%, stroke: 1pt + accent) #v(0.2em) ] ) show heading.where(level: 3): it => text( size: 1.2em, weight: "semibold", block[#it] ) [= #name] text( font: body_font, fill: accent, size: 1.2em, weight: "semibold", block[#{tagline}] ) v(-0.5em) links.map(l => { link(l.link)[ #set text(weight: "medium") #icon(l.icon) #if "text" in l.keys() { l.text } else { l.link } ] h(1em) }).join() doc } #let divider(accent: rgb("#870c66")) = { line(length: 100%, stroke: (paint: accent, thickness: 1pt, dash: "dotted")) } #let event( accent: rgb("#870c66"), company_newline: false, title, company, period, location ) = [ #text(1.2em)[ #text(weight: "semibold")[#title] #h(1fr) #if not company_newline { text(fill: accent, weight: "bold", size: 0.8em, baseline: -0.125em)[_#[#company]_] } else { text(fill: accent, weight: "bold", size: 0.8em)[\ _#[#company]_] } ]\ #text(1em)[ #if period != [] { icon("calendar", shift: 0.18em) [_#[#period]_] } #h(1fr) #if location != [] { icon("location") location } ] ] #let article( accent: rgb("#870c66"), title: "", date: "", url: "" ) = [ #par(justify: false)[ #text(weight: "semibold")[ #text(size: 1.2em)["#title"] ]\ #text(size: 0.85em, style: "italic", weight: "bold", tracking: -0.025em, fill: accent)[ #icon("link", shift: 0.25em) #h(-0.25em) #link("https://" + url)[#url] ] #v(-0.85em) #text(size: 0.85em, style: "italic", weight: "semibold", tracking: -0.025em)[ #icon("calendar", shift: 0.15em) #h(0.1em) #date ] ] ]