summaryrefslogtreecommitdiff
path: root/mod/misc/cv/cv.typ
diff options
context:
space:
mode:
authorKleidi Bujari <mail@4kb.net>2025-01-24 12:30:55 -0500
committerKleidi Bujari <mail@4kb.net>2025-01-24 12:30:55 -0500
commitc2196e5b168ccf86aa4da0f27298589a65e416cb (patch)
tree11ee1df7e8d8c2e00208cfe2c718c37651c28118 /mod/misc/cv/cv.typ
parent32f4cb5cbba313b7af2fce46139c04d9469cb72a (diff)
downloaddepot-c2196e5b168ccf86aa4da0f27298589a65e416cb.tar.gz
depot-c2196e5b168ccf86aa4da0f27298589a65e416cb.tar.bz2
depot-c2196e5b168ccf86aa4da0f27298589a65e416cb.zip
simplify cv build
Diffstat (limited to 'mod/misc/cv/cv.typ')
-rw-r--r--mod/misc/cv/cv.typ127
1 files changed, 125 insertions, 2 deletions
diff --git a/mod/misc/cv/cv.typ b/mod/misc/cv/cv.typ
index e243796..1120e39 100644
--- a/mod/misc/cv/cv.typ
+++ b/mod/misc/cv/cv.typ
@@ -1,11 +1,134 @@
-#import "template.typ": *
+#let resume(
+ author: "",
+ email: "",
+ github: "",
+ personal-site: "",
+ accent-color: "#000000",
+ font: "New Computer Modern",
+ body,
+) = {
+ set document(author: author, title: author)
+ set text(
+ // LaTeX style font
+ font: font,
+ size: 10pt,
+ lang: "en",
+ ligatures: false
+ )
+
+ set page(
+ margin: (0.5in),
+ paper: "us-letter",
+ )
+
+ show link: underline
+ show link: set text(
+ fill: rgb(accent-color),
+ )
+
+ show heading.where(level: 2): it => [
+ #pad(top: 0pt, bottom: -10pt, [#smallcaps(it.body)])
+ #line(length: 100%, stroke: 1pt)
+ ]
+
+ // Accent Color Styling
+ show heading: set text(
+ fill: rgb(accent-color),
+ )
+
+ show heading.where(level: 1): it => [
+ #set align(left)
+ #set text(
+ weight: 700,
+ size: 20pt,
+ )
+ #pad(it.body)
+ ]
+
+ [= #(author)]
+
+ let contact-item(value, prefix: "", link-type: "") = {
+ if value != "" {
+ if link-type != "" {
+ link(link-type + value)[#(prefix + value)]
+ } else {
+ value
+ }
+ }
+ }
+
+ // Personal Info
+ pad(
+ top: 0.25em,
+ align(left)[
+ #{
+ let items = (
+ contact-item(email, link-type: "mailto:"),
+ contact-item(github, link-type: "https://"),
+ contact-item(personal-site, link-type: "https://"),
+ )
+ items.filter(x => x != none).join(" | ")
+ }
+ ],
+ )
+
+ set par(justify: true)
+
+ body
+}
+
+#let generic-two-by-two(
+ top-left: "",
+ top-right: "",
+ bottom-left: "",
+ bottom-right: "",
+) = {
+ [
+ #top-left #h(1fr) #top-right \
+ #bottom-left #h(1fr) #bottom-right
+ ]
+}
+
+#let dates-helper(
+ start-date: "",
+ end-date: "",
+) = {
+ start-date + " " + $dash.em$ + " " + end-date
+}
+
+#let edu(
+ institution: "",
+ dates: "",
+ degree: "",
+ location: "",
+) = {
+ generic-two-by-two(
+ top-left: strong(institution),
+ top-right: location,
+ bottom-left: emph(degree),
+ bottom-right: emph(dates),
+ )
+}
+
+#let work(
+ title: "",
+ dates: "",
+ company: "",
+ location: "",
+) = {
+ generic-two-by-two(
+ top-left: strong(title),
+ top-right: dates,
+ bottom-left: company,
+ bottom-right: emph(location),
+ )
+}
#show: resume.with(
author: "Kleidi Bujari",
email: "mail@4kb.net",
github: "github.com/kbujari",
personal-site: "4kb.net",
- paper: "us-letter",
)
== Education