You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
1.6 KiB
80 lines
1.6 KiB
1 year ago
|
#import "@preview/fontawesome:0.1.0": *
|
||
|
|
||
|
#import "cv.typ": base_layout, put_keyword_dump_in_there, default_style, lenk
|
||
|
|
||
|
#let xenua_style = default_style
|
||
|
#xenua_style.insert("confidential", true)
|
||
|
|
||
|
#let xenua_cv(
|
||
|
style: xenua_style,
|
||
|
self,
|
||
|
lcol, rcol,
|
||
|
) = {
|
||
|
set page(
|
||
|
style.page.paper,
|
||
|
margin: style.page.margin,
|
||
|
background: if style.confidential {
|
||
|
rotate(60deg, text(112pt, fill: rgb("FFDCD5"))[
|
||
|
*CONFIDENTIAL*
|
||
|
])} else {none}
|
||
|
)
|
||
|
set text(
|
||
|
font: "Inter",
|
||
|
size: style.size.base,
|
||
|
fill: style.colors.text
|
||
|
)
|
||
|
show heading: it => {
|
||
|
set text(fill: style.colors.heading)
|
||
|
it
|
||
|
}
|
||
|
show heading.where(level: 1): it => {
|
||
|
set text(size: style.size.h1)
|
||
|
it
|
||
|
}
|
||
|
show heading.where(level: 2): it => {
|
||
|
set text(size: style.size.h2)
|
||
|
upper(it)
|
||
|
v(-4mm)
|
||
|
line(length: 100%, stroke: style.line_height + style.colors.light)
|
||
|
}
|
||
|
|
||
|
put_keyword_dump_in_there()
|
||
|
|
||
|
let header = {
|
||
|
grid(
|
||
|
columns: (1fr, auto),
|
||
|
[
|
||
|
= #self.name
|
||
|
#v(-2mm)
|
||
|
#text(fill: style.colors.base)[*#self.tagline*]
|
||
|
],
|
||
|
[
|
||
|
#table(
|
||
|
columns: 2,
|
||
|
stroke: none,
|
||
|
inset: 0pt,
|
||
|
align: (center, left),
|
||
|
row-gutter: 5pt,
|
||
|
column-gutter: 4pt,
|
||
|
..self.meta.map(
|
||
|
((icon, content)) => (
|
||
|
[#text(fill: style.colors.base)[#icon]],
|
||
|
[*#content*]
|
||
|
)
|
||
|
).flatten()
|
||
|
)
|
||
|
]
|
||
|
)
|
||
|
line(length: 100%, stroke: style.line_height + style.colors.light)
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
base_layout(
|
||
|
style,
|
||
|
header,
|
||
|
lcol, rcol
|
||
|
)
|
||
|
}
|