CV_Typst/cv/utils.typ

42 lines
923 B
Plaintext

#let months = yaml("../data/months.yaml")
#let getWithLang(lang, data) = {
if type(data) == dictionary {
data.at(lang)
} else {
data
}
}
#let display = getWithLang("fr", months.at("short")).at(1)
// Helper Functions
#let monthname(lang, n, display: "short") = {
n = int(n)
let month = ""
let displayMonths = getWithLang(lang, months.at(display))
if (n > 0 and n <= 12) {
month = displayMonths.at(n - 1)
}
month
}
#let strpdate(lang, isodate) = {
let date = ""
let isodate = getWithLang(lang, isodate)
if (regex("\d{4}-\d{2}-\d{2}") in isodate) {
date = datetime(
year: int(isodate.slice(0, 4)),
month: int(isodate.slice(5, 7)),
day: int(isodate.slice(8, 10))
)
date = monthname(lang, date.month()) + " " + date.display("[year repr:full]")
} else {
date = isodate
}
return date
}