feat: abstract everything

This commit is contained in:
eggy 2025-01-07 15:19:53 -05:00
parent 1d3c065bf7
commit 7090fbbed0
3 changed files with 63 additions and 46 deletions

View File

@ -1,37 +1,8 @@
#import "fontawesome.typ": fa, globe, github, linkedin, envelope
#import "lib.typ": template, work_entry, project, indent, SMALL_STRONG, DEFAULT_STRONG, render_contact_data
// orange!!
#let color = blue // rgb("#ff983e")
#let name = "Daniel Chen"
#import "lib.typ": SMALL_STRONG
#import "template_common.typ": template_common, work_entry, project, indent
#let contact_data = ((
service: fa[#globe],
display: "eggworld.me",
link: "https://eggworld.me",
), (
service: fa[#github],
display: "github.com/potatoeggy",
link: "https://github.com/potatoeggy",
), (
service: fa[#linkedin],
display: "linkedin.com/in/potatoeggy",
link: "https://www.linkedin.com/in/potatoeggy/",
), (
service: fa[#envelope],
display: "d7chen@uwaterloo.ca",
link: "mailto://d7chen@uwaterloo.ca",
),)
#show: doc => template(name, color, doc)
#render_contact_data(contact_data)
// MAIN CONTENT STARTS here
= Education
#indent[
#let education = indent[
#work_entry(
"B.A.Sc. in Computer Engineering",
"University of Waterloo",
@ -47,6 +18,17 @@
)
]
#let skills = indent[
*Languages:* TypeScript/JavaScript, HTML, CSS, SQL, Python, Java, C, C++, Rust \
// Dart
*Technologies:* React, Next.js, Spring Boot, Express, Prisma, Apollo, GraphQL \
// Qt, Jest / Pytest, Apollo, Prisma, Rails
*Tools:* Linux, Git, Docker, Postgres, Pytest, Jest, AWS/GCP, Kubernetes,
Terraform, Figma // Jenkins, systemd, Jira
]
#show: doc => template_common(education, skills, doc)
= Experience
#indent[
@ -220,14 +202,3 @@
// - Containerised services with *Docker* and *systemd* to simplify deployment and
// management
]
= Skills
#indent[
*Languages:* TypeScript/JavaScript, HTML, CSS, SQL, Python, Java, C, C++, Rust \
// Dart
*Technologies:* React, Next.js, Spring Boot, Express, Prisma, Apollo, GraphQL \
// Qt, Jest / Pytest, Apollo, Prisma, Rails
*Tools:* Linux, Git, Docker, Postgres, Pytest, Jest, AWS/GCP, Kubernetes,
Terraform, Figma // Jenkins, systemd, Jira
]

View File

@ -127,15 +127,15 @@
set align(left + horizon)
let title = smallcaps(i.body)
let colored_line(header_text) = style(styles => {
let size = measure(header_text, styles)
let colored_line(header_text) = {
let size = measure(header_text)
// 100% - spacing - width of text
line(
length: 100% - HEADING_LINE_GAP - size.width,
stroke: (paint: color, thickness: 2pt, cap: "round"),
)
})
}
set block(above: 0.9em, below: 0.75em)
set text(size: HEADING_FONT_SIZE, fill: color, font: HEADING_FONT)

46
template_common.typ Normal file
View File

@ -0,0 +1,46 @@
#import "fontawesome.typ": fa, globe, github, linkedin, envelope
#import "lib.typ": template, work_entry, project, indent, SMALL_STRONG, DEFAULT_STRONG, render_contact_data
#let SEQUENCE = ("education", "skills", "content")
// orange!!
#let color = blue // rgb("#ff983e")
#let name = "Daniel Chen"
#let contact_data = ((
service: fa[#globe],
display: "eggworld.me",
link: "https://eggworld.me",
), (
service: fa[#github],
display: "github.com/potatoeggy",
link: "https://github.com/potatoeggy",
), (
service: fa[#linkedin],
display: "linkedin.com/in/potatoeggy",
link: "https://www.linkedin.com/in/potatoeggy/",
), (
service: fa[#envelope],
display: "d7chen@uwaterloo.ca",
link: "mailto://d7chen@uwaterloo.ca",
),)
#show: doc => template(name, color, doc)
#let template_common(education, skills, doc) = {
template(name, color, {
render_contact_data(contact_data)
SEQUENCE.map(section => {
if section == "education" [
= Education
#education
] else if section == "skills" [
= Skills
#skills
] else if section == "content" [
#doc
]
}).join()
})
}