42
lib.typ
42
lib.typ
@@ -6,6 +6,7 @@
|
|||||||
#let color-darkgray = rgb("#333333")
|
#let color-darkgray = rgb("#333333")
|
||||||
#let color-gray = rgb("#5d5d5d")
|
#let color-gray = rgb("#5d5d5d")
|
||||||
#let default-accent-color = rgb("#262F99")
|
#let default-accent-color = rgb("#262F99")
|
||||||
|
#let default-location-color = rgb("#000")
|
||||||
|
|
||||||
// const icons
|
// const icons
|
||||||
#let linkedin-icon = box(
|
#let linkedin-icon = box(
|
||||||
@@ -14,8 +15,15 @@
|
|||||||
#let github-icon = box(
|
#let github-icon = box(
|
||||||
fa-icon("github", fill: color-darknight),
|
fa-icon("github", fill: color-darknight),
|
||||||
)
|
)
|
||||||
|
#let twitter-icon = box(
|
||||||
|
fa-icon("twitter", fill: color-darknight),
|
||||||
|
)
|
||||||
|
#let google-scholar-icon = box(
|
||||||
|
fa-icon("google-scholar", fill: color-darknight),
|
||||||
|
)
|
||||||
#let phone-icon = box(fa-icon("square-phone", fill: color-darknight))
|
#let phone-icon = box(fa-icon("square-phone", fill: color-darknight))
|
||||||
#let email-icon = box(fa-icon("envelope", fill: color-darknight))
|
#let email-icon = box(fa-icon("envelope", fill: color-darknight))
|
||||||
|
#let birth-icon = box(fa-icon("cake", fill: color-darknight))
|
||||||
|
|
||||||
/// Helpers
|
/// Helpers
|
||||||
|
|
||||||
@@ -196,6 +204,7 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
show heading.where(level: 1): it => [
|
show heading.where(level: 1): it => [
|
||||||
|
|
||||||
#set block(
|
#set block(
|
||||||
above: 1em,
|
above: 1em,
|
||||||
below: 1em,
|
below: 1em,
|
||||||
@@ -214,6 +223,7 @@
|
|||||||
#text[#strong[#text(color)[#it.body.text]]]
|
#text[#strong[#text(color)[#it.body.text]]]
|
||||||
#box(width: 1fr, line(length: 100%))
|
#box(width: 1fr, line(length: 100%))
|
||||||
]
|
]
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
show heading.where(level: 2): it => {
|
show heading.where(level: 2): it => {
|
||||||
@@ -275,7 +285,7 @@
|
|||||||
let address = {
|
let address = {
|
||||||
set text(
|
set text(
|
||||||
size: 9pt,
|
size: 9pt,
|
||||||
weight: "bold",
|
weight: "regular"
|
||||||
)
|
)
|
||||||
align(center)[
|
align(center)[
|
||||||
#if ("address" in author) [
|
#if ("address" in author) [
|
||||||
@@ -297,6 +307,11 @@
|
|||||||
)
|
)
|
||||||
#block[
|
#block[
|
||||||
#align(horizon)[
|
#align(horizon)[
|
||||||
|
#if ("birth" in author) [
|
||||||
|
#birth-icon
|
||||||
|
#box[#text(author.birth)]
|
||||||
|
#separator
|
||||||
|
]
|
||||||
#if ("phone" in author) [
|
#if ("phone" in author) [
|
||||||
#phone-icon
|
#phone-icon
|
||||||
#box[#text(author.phone)]
|
#box[#text(author.phone)]
|
||||||
@@ -315,9 +330,20 @@
|
|||||||
#separator
|
#separator
|
||||||
#linkedin-icon
|
#linkedin-icon
|
||||||
#box[
|
#box[
|
||||||
#link("https://www.linkedin.com/in/" + author.linkedin)[#author.firstname #author.lastname]
|
#link("https://www.linkedin.com/in/" + author.linkedin)[#author.linkedin]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
#if ("twitter" in author) [
|
||||||
|
#separator
|
||||||
|
#twitter-icon
|
||||||
|
#box[#link("https://twitter.com/" + author.twitter)[\@#author.twitter]]
|
||||||
|
]
|
||||||
|
#if ("scholar" in author) [
|
||||||
|
#let fullname = str(author.firstname + " " + author.lastname)
|
||||||
|
#separator
|
||||||
|
#google-scholar-icon
|
||||||
|
#box[#link("https://scholar.google.com/citations?user=" + author.scholar)[#fullname]]
|
||||||
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
@@ -355,9 +381,19 @@
|
|||||||
date: "",
|
date: "",
|
||||||
description: "",
|
description: "",
|
||||||
accent-color: default-accent-color,
|
accent-color: default-accent-color,
|
||||||
|
location-color: default-location-color,
|
||||||
|
title-link: none
|
||||||
) = {
|
) = {
|
||||||
|
|
||||||
|
let title-content
|
||||||
|
if type(title-link) == "string" {
|
||||||
|
title-content = link(title-link)[#text(fill: rgb("#000"))[#title]]
|
||||||
|
} else {
|
||||||
|
title-content = title
|
||||||
|
}
|
||||||
|
|
||||||
pad[
|
pad[
|
||||||
#justified-header(title, location)
|
#justified-header(title-content, text(fill: location-color)[#location])
|
||||||
#secondary-justified-header(description, date)
|
#secondary-justified-header(description, date)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,9 @@
|
|||||||
email: "js@example.com",
|
email: "js@example.com",
|
||||||
phone: "(+1) 111-111-1111",
|
phone: "(+1) 111-111-1111",
|
||||||
github: "DeveloperPaul123",
|
github: "DeveloperPaul123",
|
||||||
|
twitter: "typstapp",
|
||||||
|
scholar: "",
|
||||||
|
birth: "January 1, 1990",
|
||||||
linkedin: "Example",
|
linkedin: "Example",
|
||||||
address: "111 Example St. Example City, EX 11111",
|
address: "111 Example St. Example City, EX 11111",
|
||||||
positions: (
|
positions: (
|
||||||
@@ -27,6 +30,7 @@
|
|||||||
location: "Example City, EX",
|
location: "Example City, EX",
|
||||||
date: "2019 - Present",
|
date: "2019 - Present",
|
||||||
description: "Example, Inc.",
|
description: "Example, Inc.",
|
||||||
|
title-link: "https://github.com/DeveloperPaul123"
|
||||||
)
|
)
|
||||||
|
|
||||||
#resume-item[
|
#resume-item[
|
||||||
|
|||||||
Reference in New Issue
Block a user