summaryrefslogtreecommitdiff
path: root/resume-base.typ
diff options
context:
space:
mode:
authorDavid Yue <davidyue5819@gmail.com>2026-11-13 13:34:23 -0700
committerDavid Yue <davidyue5819@gmail.com>2026-11-13 13:34:23 -0700
commitb6bff9bed293713755ade301f08443638815d8fb (patch)
treeeadb4b8297e567f9b0ceaff70ca2321c32d1df9c /resume-base.typ
downloadresume_template-b6bff9bed293713755ade301f08443638815d8fb.tar.gz
Add filesHEADmaster
Diffstat (limited to 'resume-base.typ')
-rw-r--r--resume-base.typ85
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
+ )
+}
+