diff options
Diffstat (limited to 'resume-base.typ')
| -rw-r--r-- | resume-base.typ | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/resume-base.typ b/resume-base.typ new file mode 100644 index 0000000..c8ae7ba --- /dev/null +++ b/resume-base.typ @@ -0,0 +1,85 @@ +#let onepage = sys.inputs.at("onepage", default: "no") == "yes" +#let show-address = sys.inputs.at("address", default: "no") == "yes" + +#let resume( + name: none, + legal-name: none, + email: none, + phone: none, + website: none, + address: none, + description: none, + keywords: (), + text-base-size: 12pt, + heading-color: black, + text-color: black +) = { + let section(title) = [ + #v(-4pt) + #text(fill: heading-color, size: text-base-size * 1.4, weight: "regular")[#smallcaps[#title]] + #v(-text-base-size * 1.3) + #line(length: 100%, stroke: 0.5pt + heading-color) + ] + + let entry(title, subtitle: none, date: "", bullets: ()) = [ + #box[ + #grid( + columns: (auto, 1fr), + [*#title*#if subtitle != none [\ #v(-6pt) #subtitle]], [#align(right)[#date]], + ) + #v(1pt) + #if bullets.len() > 0 [ + #v(-7pt) + #list( + marker: "--", + ..bullets.map(item => [#par(justify: true)[#item]]), + ) + ] + ] + ] + + let resume-title = name + "-- Resume" + + let apply = body => [ + #set document( + title: resume-title, + author: name, + description: description, + keywords: keywords, + ) + + #set page( + margin: 0.25in, + paper: "us-letter", + height: if onepage { auto } else { 11in }, + fill: white, + ) + #set text(font: "New Computer Modern", size: text-base-size, fill: text-color) + // #set par(leading: 0.4em) + + #show heading.where(level: 1): it => [ + #section(it.body) + ] + #columns(2)[ + #text(size: text-base-size * 2.7, fill: heading-color)[#smallcaps[#name]]\ + #if show-address [ + #smallcaps[#address]\ + #if legal-name != none [#smallcaps[Legal name: #legal-name]] + ] else [#v(-20pt)] + #colbreak() + #align(right)[ + #text(size: text-base-size * 1.4, fill: heading-color)[ + #link(website)[#website] | #link("mailto:" + email)[#email]\ + #link("tel:" + phone)[#phone] + ] + ] + ] + #body + ] + + return ( + apply: apply, + entry: entry + ) +} + |
