This commit is contained in:
violette 2025-05-02 13:46:05 -04:00
parent 6d4a818b49
commit d0e6a2bbce
6 changed files with 605 additions and 128 deletions

254
config.json Normal file
View file

@ -0,0 +1,254 @@
{
"contacts": {
"name": "Violette Paulin",
"email": "paum1202@usherbrooke.ca",
"website": "violette.town",
"nationality": "French",
"git": "https://git.violette.town/violette"
},
"skills": [
{
"name": "Programming Languages",
"items": [
"C / C++ / Rust",
"Java",
"Python / Shell Scripting",
"JavaScript / TypeScript"
]
},
{
"name": "Data Analysis",
"items": [
"Data Visualization",
"Statistics"
]
},
{
"name": "System Development",
"items": [
"Embedded",
"Distributed Systems",
"BSD / Linux / Unix like"
]
},
{
"name": "Database Management",
"items": [
"noSQL",
"SQL",
"Blockchain"
]
},
{
"name": "Web Development",
"items": [
"Spring",
"Angular.js"
]
}
],
"languages": [
{
"name": "French",
"proficiency": 5,
"comment": "None"
},
{
"name": "English",
"proficiency": 4,
"comment": "None"
},
{
"name": "German",
"proficiency": 2,
"comment": "None"
}
],
"jobs": [
{
"position": "R & D, Software Developer Intern",
"company": {
"name": "TransTech innovations",
"link": "https://transtechinnovations.com"
},
"description": [
"Creating a parser for a proprietary logger (java spring boot, angular JS)",
"Creating a proof of concept for a module in embedded devices (C++23)"
],
"from": "2024 Sept.",
"to": "2025 Feb.",
"tags": [
"Embedded systems",
"Fullstack",
"Java Spring Boot",
"Angular",
"C / C++"
]
},
{
"position": "SysAdmin",
"company": {
"name": "TransEstrie",
"link": "https://transestrie.org"
},
"from": "2024 Jul",
"to": "2024 Aug.",
"description": [
"Maintaining and upgrading the internal network",
"Setting up diverse services (NextCloud, VPN, securing data, creating backups...)"
],
"tags": [
"SysAdmin",
"Autonomy",
"Self Teaching"
]
},
{
"position": "R & D, Software Developer Intern",
"company": {
"name": "LISTIC Annecy",
"link": "https://www.univ-smb.fr/listic/en/"
},
"description": [
"Building a distributed caching system, and storing logs within a Blockchain",
"Internship in a informatic research laboratory",
"Suppervised by Sébastien Monnet & Kavé Salamatian"
],
"from": "2023 May.",
"to": "2023 Aug.",
"tags": [
"Distributed System design",
"Rust",
"Blockchain Programming",
"Web Programming - Backend & Frontend",
"Self Teaching"
]
},
{
"position": "SEO Agent",
"company": {
"name": "BIWA Annecy",
"link": "https://box-evidence.com"
},
"description": [
"Optimise web ranking of different websites"
],
"from": "2022 May.",
"to": "2022 Jul.",
"tags": [
"Autonomy",
"SEO"
]
}
],
"education": [
{
"university": {
"name": "Polytech Annecy Chambéry",
"link": "https://www.polytech.univ-smb.fr/"
},
"degree": "Engineering Degree (France)",
"major": "Computer Science",
"track": "Informatic Data Usage",
"from": "2021",
"to": "2025"
},
{
"university": {
"name": "Sherbrooke University",
"link": "https://usherbrooke.ca"
},
"degree": "M.Sc.",
"major": "Computer Science",
"track": "None",
"from": "2023",
"to": "2025"
}
],
"projects": {
"personnal": [
{
"main": {
"name": "Discsord Bot",
"link": "https://github.com/storca/vhbot"
},
"description": [
"Automate actions during class",
"Useful for our teachers",
"List people attending class",
"Wishes birthday to our teachers"
],
"tags": [
"Python",
"Teamwork",
"Git"
],
"year": 2020
}
],
"school": [
{
"main": {
"name": "DHTea",
"link": "https://github.com/phoqueEberlue/DHTea"
},
"description": [
"Distributed hash table",
"Written in rust from scratch",
"Stores files / data"
],
"tags": [
"Rust",
"Distributed system",
"Self Teaching",
"Git",
"Shell scripting"
],
"year": 2023
},
{
"main": {
"name": "Proxy",
"link": "https://github.com/TheBigBlase/proxy"
},
"description": [
"Proxy",
"Written in Python and Rust"
],
"tags": [
"Teamwork / Team management",
"Git"
],
"year": 2022
},
{
"main": {
"name": "kr00k",
"link": "https://github.com/thebigblase/kr00k"
},
"description": [
"Proof of concept for a security vulnerability (CVE-2019-15126)",
"Used as my final projects for MPSI / MP classes."
],
"tags": [
"Cybersecurity",
"Python",
"Self Teaching"
],
"year": 2021
}
]
},
"hobbies": {
"tech": [
"seeing how things are done under the hood",
"low level-ish dev",
"resurecting old tech"
],
"other": [
"music",
"playing the guitar",
"cooking"
]
}
}

246
config_fr.json Normal file
View file

@ -0,0 +1,246 @@
{
"contacts": {
"name": "Violette Paulin",
"email": "paum1202@usherbrooke.ca",
"website": "violette.town",
"nationality": "Française",
"git": "https://git.violette.town/violette"
},
"skills": [
{
"name": "Langages de programmation",
"items": [
"C / C++ / Rust",
"Python / Node.js / Shell Scripting",
"JavaScript / TypeScript"
]
},
{
"name": "Analyse de données",
"items": [
"Visualisations de données",
"Statistiques"
]
},
{
"name": "Systèmes",
"items": [
"Systèmes embarqués",
"Systèmes distribués",
"BSD / Linux / Unix like"
]
},
{
"name": "Bases de données",
"items": [
"noSQL",
"SQL",
"Blockchain"
]
},
{
"name": "Développement Web",
"items": [
"Spring",
"Angular.js"
]
}
],
"languages": [
{
"name": "Francais",
"proficiency": 5,
"comment": "None"
},
{
"name": "Anglais",
"proficiency": 4,
"comment": "None"
},
{
"name": "Allemand",
"proficiency": 2,
"comment": "None"
}
],
"jobs": [
{
"position": "R&D, développement logiciel",
"company": {
"name": "TransTech innovations",
"link": "https://transtechinnovations.com"
},
"description": [
"Créer un parseur de log, et son front end (java spring boot, angular JS)",
"Design et implémentation de modules embarqués pour un système temps réel (C++23)"
],
"from": "Septembre 2024",
"to": "Février 2025",
"tags": [
"Systèmes embarqués",
"Fullstack",
"Java Spring Boot",
"Angular",
"C / C++"
]
},
{
"position": "SysAdmin",
"company": {
"name": "TransEstrie",
"link": "https://transestrie.org"
},
"description": [
"Maintenance et mise à jour des infrastructures réseaux",
"Mise en place de divers services (NextCloud, VPN, chiffrement des données, création de backup...)"
],
"from": "Juillet 2024",
"to": " Aout 2024",
"tags": [
"SysAdmin",
"Autonomie"
]
},
{
"position": "Stage en R&D logiciel",
"company": {
"name": "LISTIC, USMB",
"link": "https://www.univ-smb.fr/listic/en/"
},
"description": [
"Stage effectué dans un laboratoire d'informatique public",
"Design et implémentation d'un système de cache avec blockchain"
],
"from": "Mai 2023",
"to": "Aout 2023",
"tags": [
"Design de système distribué",
"Programmation de blockchain",
"Interface web - Backend & Frontend",
"Autonomie"
]
},
{
"position": "Rédactrice SEO",
"company": {
"name": "Box évidence",
"link": "https://box-evidence.com/"
},
"description": [
"Rédaction d'articles et optimisation de contenu pour moteur de recherche"
],
"from": "Mai 2022",
"to": "Juillet 2022",
"tags": [
"Autonomie",
"SEO"
]
}
],
"education": [
{
"university": {
"name": "Université de Sherbrooke",
"link": "https://usherbrooke.ca"
},
"degree": "Maitrise",
"major": "d'informatique",
"track": "None",
"from": "2023",
"to": "2025"
},
{
"university": {
"name": "Polytech Annecy Chambéry",
"link": "https://www.polytech.univ-smb.fr/"
},
"degree": "Maitrise",
"major": "d'informatique",
"track": "Informatique Données Usage",
"from": "2021",
"to": "2025"
}
],
"projects": {
"personnal": [
{
"main": {
"name": "Bot Discsord",
"link": "https://github.com/storca/vhbot"
},
"description": [
"Fait des actions comme faire l'appel de la classe pendant le confinement"
],
"year": 2020,
"tags": [
"Python",
"En équipe",
"Git"
]
}
],
"school": [
{
"main": {
"name": "DHTea",
"link": "https://github.com/phoqueEberlue/DHTea"
},
"description": [
"Table de Hash distribuée",
"Stockage d'information / fichiers distribué",
"Ecrit from scratch"
],
"tags": [
"Rust",
"Systèmes distribués",
"Autonomie",
"Git",
"Shell scripting"
],
"year": 2023
},
{
"main": {
"name": "Proxy",
"link": "https://github.com/tartesauxpommes/proxy"
},
"description": [
"Proxy",
"Ecrit en Python et Rust"
],
"tags": [
"Travail et gestion d'équipe",
"Git"
],
"year": 2022
},
{
"main": {
"name": "kr00k",
"link": "https://github.com/tartesauxpommes/kr00k"
},
"description": [
"Preuve de concept pour une faille de sécurité (CVE-2019-15126)",
"Remis comme projet final TIPE de MPSI / MP"
],
"tags": [
"Sécurité informatique",
"Python",
"Autonomie"
],
"year": 2021
}
]
},
"hobbies": {
"tech": [
"Aller fouiller sous le capot de mes outils",
"réssuciter des vieux objets électroniques"
],
"other": [
"cuisine",
"guitare",
"musique (jazz / blues)"
]
}
}

View file

@ -81,7 +81,7 @@ jobs:
- Autonomie - Autonomie
- position: "Stage en R&D logiciel" - position: "Stage en R&D logiciel"
company: company:
name: LISTIC, Université Savoie Mt-blanc name: LISTIC, USMB
link: https://www.univ-smb.fr/listic/en/ link: https://www.univ-smb.fr/listic/en/
description: description:
- Stage effectué dans un laboratoire d'informatique public - Stage effectué dans un laboratoire d'informatique public

View file

@ -1,8 +1,9 @@
#let config = yaml("config.yaml") #let config = json("config.json")
#let settings = yaml("settings.yaml") #let settings = yaml("settings.yaml")
#let personnal = yaml("personnal.yaml") #let personnal = yaml("personnal.yaml")
#show link: set text(blue) #let color = purple
#show link: set text(color)
#show heading: h => [ #show heading: h => [
#set text( #set text(
@ -14,29 +15,21 @@
#let sidebarSection = {[ #let sidebarSection = {[
#par(justify: true)[ #par(justify: true)[
#par[
#set text( #set text(
size: eval(settings.font.size.contacts), size: eval(settings.font.size.contacts),
font: settings.font.minor_highlight, font: settings.font.minor_highlight,
) )
Email: #link("mailto:" + config.contacts.email)\ Email: #link("mailto:" + config.contacts.email)\
#if (not settings.public) { #if (not settings.public) {
[Phone: #link("tel:" + personnal.contacts.phone)\ ] [Phone: #link("tel:" + personnal.contacts.phone)\ ]
} }
Git: #link(config.contacts.git) \ Git: #link(config.contacts.git) \
Website: #link(config.contacts.website) \ Website: #link(config.contacts.website) \
#if (not settings.public) { #if (not settings.public) {
personnal.contacts.address personnal.contacts.address
} }
]
#line(length: 100%, stroke: blue + 0.5pt)
] ]
#line(length: 100%, stroke: color + 0.5pt)
= Summary = Summary
@ -45,8 +38,9 @@
eval(settings.font.size.education_description), eval(settings.font.size.education_description),
font: settings.font.minor_highlight, font: settings.font.minor_highlight,
) )
A *software developer* with a confident grasp of *infrastructure*, *system design*, and *DevOps*, now seeking opportunities to excel in the realms of solution architecture. A *software developer* with a confident grasp of *infrastructure*, *system
design*, *System administration*, as well as *DevOps*, now seeking opportunities to excel in the realms of
solution architecture.\
Open to roles ranging from *software developer* to *DevOps*. Open to roles ranging from *software developer* to *DevOps*.
] ]
@ -72,8 +66,6 @@
#{ #{
for lang in config.languages [ for lang in config.languages [
#par(leading: 0pt)[
#set text( #set text(
size: eval(settings.font.size.description), size: eval(settings.font.size.description),
font: settings.font.minor_highlight, font: settings.font.minor_highlight,
@ -86,10 +78,10 @@
let count = 0 let count = 0
while count < 5 { while count < 5 {
if (count < lang.proficiency) { if (count < lang.proficiency) {
text(blue, size: 15pt)[#sym.circle.filled] text(color, size: 15pt)[#sym.circle.filled]
} }
else { else {
text(blue, size: 15pt)[#sym.circle] text(color, size: 15pt)[#sym.circle]
} }
count = count + 1 count = count + 1
} }
@ -99,11 +91,10 @@
} }
) )
]
] ]
} }
#line(length: 100%, stroke: blue + 0.5pt) #line(length: 100%, stroke: color + 0.5pt)
= Hobbies = Hobbies
#{ #{
@ -113,9 +104,8 @@
)[ )[
#set text( #set text(
size: eval(settings.font.size.tags), size: eval(settings.font.size.tags),
font: settings.font.general font: settings.font.minor_highlight
) )
#config.hobbies.tech.join(" ") #config.hobbies.tech.join(" ")
] ]
@ -125,9 +115,8 @@
)[ )[
#set text( #set text(
size: eval(settings.font.size.tags), size: eval(settings.font.size.tags),
font: settings.font.general font: settings.font.minor_highlight
) )
#config.hobbies.other.join(" ") #config.hobbies.other.join(" ")
] ]
@ -157,16 +146,15 @@
#{ #{
for place in config.education [ for place in config.education [
#par[ #par(spacing: 0em)[
#set block(spacing: eval(settings.paragraph.spacing)) #set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
size: eval(settings.font.size.heading), size: eval(settings.font.size.heading),
font: settings.font.general font: settings.font.general
) )
#place.from #place.to \ #place.from #place.to #text(color.darken(30%))[::] #link(place.university.link)[#place.university.name]
#link(place.university.link)[#place.university.name]
] ]
#par[ #par(spacing: 0.7em)[
#set block(spacing: eval(settings.paragraph.spacing)) #set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
eval(settings.font.size.education_description), eval(settings.font.size.education_description),
@ -182,29 +170,29 @@
] ]
} }
#line(length: 100%, stroke: color + 0.5pt)
= Revelant Experience = Revelant Experience
#{ #{
for job in config.jobs [ for job in config.jobs [
#par(justify: false)[ #par(justify: false, spacing: 0em)[
#set block(spacing: eval(settings.paragraph.spacing)) #set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
size: eval(settings.font.size.heading), size: eval(settings.font.size.heading),
font: settings.font.general font: settings.font.general
) )
#job.from #job.to \ #job.from #job.to #text(color)[::] *#job.position*
*#job.position*
#link(job.company.link)[\@ #job.company.name] #link(job.company.link)[\@ #job.company.name]
] ]
#par( #par(
justify: false, justify: false,
leading: eval(settings.paragraph.leading) leading: eval(settings.paragraph.leading),
spacing: 0.7em
)[ )[
#set block(spacing: eval(settings.paragraph.spacing)) #set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
size: eval(settings.font.size.description), size: eval(settings.font.size.description),
font: settings.font.general font: settings.font.minor_highlight
) )
#{ #{
for point in job.description [ for point in job.description [
@ -215,6 +203,7 @@
#par( #par(
justify: true, justify: true,
leading: eval(settings.paragraph.leading), leading: eval(settings.paragraph.leading),
spacing: 0.7em
)[ )[
#set text( #set text(
size: eval(settings.font.size.tags), size: eval(settings.font.size.tags),
@ -229,15 +218,12 @@
] ]
} }
#line(length: 100%, stroke: color + 0.5pt)
= School related Projects = School related Projects
#{ #{
for project in config.projects.school [ for project in config.projects.school [
#par( #block(spacing: 0.7em)[
justify: true,
leading: eval(settings.paragraph.leading)
)[
#par[
#set block(spacing: eval(settings.paragraph.spacing)) #set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
size: eval(settings.font.size.heading), size: eval(settings.font.size.heading),
@ -249,11 +235,11 @@
} }
#link(project.main.link)[#project.main.name] #link(project.main.link)[#project.main.name]
] ]
#par[ #par(spacing: 0.7em,)[
#set block(spacing: eval(settings.paragraph.spacing)) #set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
size: eval(settings.font.size.description), size: eval(settings.font.size.description),
font: settings.font.general font: settings.font.minor_highlight
) )
#{ #{
for point in project.description [ for point in project.description [
@ -264,6 +250,7 @@
#par( #par(
justify: true, justify: true,
leading: eval(settings.paragraph.leading), leading: eval(settings.paragraph.leading),
spacing: 0.7em,
)[ )[
#set block(spacing: eval(settings.paragraph.spacing)) #set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
@ -275,7 +262,6 @@
tag_line tag_line
} }
] ]
]
] ]
} }
]} ]}

View file

@ -1,8 +1,9 @@
#let config = yaml("config_fr.yaml") #let config = json("config_fr.json")
#let settings = yaml("settings.yaml") #let settings = yaml("settings.yaml")
#let personnal = yaml("personnal.yaml") #let personnal = yaml("personnal.yaml")
#show link: set text(blue) #let color = purple
#show link: set text(color)
#show heading: h => [ #show heading: h => [
#set text( #set text(
@ -14,42 +15,31 @@
#let sidebarSection = {[ #let sidebarSection = {[
#par(justify: true)[ #par(justify: true)[
#par[
#set text( #set text(
size: eval(settings.font.size.contacts), size: eval(settings.font.size.contacts),
font: settings.font.minor_highlight, font: settings.font.minor_highlight,
) )
Email: #link("mailto:" + config.contacts.email)\
Couriel : #link("mailto:" + config.contacts.email)\
#if (not settings.public) { #if (not settings.public) {
[Cellulaire : #link("tel:" + personnal.contacts.phone)\ ] [Phone: #link("tel:" + personnal.contacts.phone)\ ]
} }
Git: #link(config.contacts.git) \
Git : #link(config.contacts.git) \ Website: #link(config.contacts.website) \
Website : #link(config.contacts.website) \
#if (not settings.public) { #if (not settings.public) {
personnal.contacts.address personnal.contacts.address
} }
]
#line(length: 100%, stroke: blue + 0.5pt)
] ]
#line(length: 100%, stroke: color + 0.5pt)
= Simplement : = Rapidement
#par(justify: true)[ #par[
#set text( #set text(
eval(settings.font.size.education_description), eval(settings.font.size.education_description),
font: settings.font.minor_highlight, font: settings.font.minor_highlight,
hyphenate: false
) )
Je suis une développeuse ayant des capacités pertinantes en tant que Je suis une développeuse ayant des capacités pertinantes en tant que
*DevOps*, et en conception de systèmes répartis. *DevOps*, *Embarqué*, *SysAdmin* et en *conception de systèmes répartis*.
] ]
= Compétences = Compétences
@ -61,6 +51,7 @@
size: eval(settings.font.size.description), size: eval(settings.font.size.description),
) )
#set text( #set text(
// size: eval(settings.font.size.tags),
font: settings.font.minor_highlight, font: settings.font.minor_highlight,
) )
*#skill.name* *#skill.name*
@ -69,13 +60,10 @@
] ]
] ]
} }
= Langues
= Langues
#{ #{
for lang in config.languages [ for lang in config.languages [
#par(leading: 0pt)[
#set text( #set text(
size: eval(settings.font.size.description), size: eval(settings.font.size.description),
font: settings.font.minor_highlight, font: settings.font.minor_highlight,
@ -88,10 +76,10 @@
let count = 0 let count = 0
while count < 5 { while count < 5 {
if (count < lang.proficiency) { if (count < lang.proficiency) {
text(blue, size: 15pt)[#sym.circle.filled] text(color, size: 15pt)[#sym.circle.filled]
} }
else { else {
text(blue, size: 15pt)[#sym.circle] text(color, size: 15pt)[#sym.circle]
} }
count = count + 1 count = count + 1
} }
@ -101,23 +89,21 @@
} }
) )
]
] ]
} }
#line(length: 100%, stroke: blue + 0.5pt) #line(length: 100%, stroke: color + 0.5pt)
= Loisirs = Loisirs
#{ #{
par( par(
justify: true, justify: true,
leading: eval(settings.paragraph.leading) leading: eval(settings.paragraph.leading)
)[ )[
#set text( #set text(
size: eval(settings.font.size.tags), size: eval(settings.font.size.tags),
font: settings.font.general font: settings.font.minor_highlight
) )
#config.hobbies.tech.join(" ") #config.hobbies.tech.join(" ")
] ]
@ -127,17 +113,25 @@
)[ )[
#set text( #set text(
size: eval(settings.font.size.tags), size: eval(settings.font.size.tags),
font: settings.font.general font: settings.font.minor_highlight
) )
#config.hobbies.other.join(" ") #config.hobbies.other.join(" ")
] ]
} }
]} ]}
#let mainSection = {[ #let mainSection = {[
// #par[
// #set align(center)
// #figure(
// image("images/Kodak 20 Zanvoort Lumi.jpg", width: 6em),
// placement: top,
// )
// ]
#par[ #par[
#set text( #set text(
size: eval(settings.font.size.heading_huge), size: eval(settings.font.size.heading_huge),
@ -150,52 +144,53 @@
#{ #{
for place in config.education [ for place in config.education [
#par[ #par(spacing: 0em)[
#set block(spacing: eval(settings.paragraph.spacing)) #set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
size: eval(settings.font.size.heading), size: eval(settings.font.size.heading),
font: settings.font.general font: settings.font.general
) )
#place.from #place.to \ #place.from #place.to #text(color.darken(30%))[::] #link(place.university.link)[#place.university.name]
#link(place.university.link)[#place.university.name] ]
] #par(spacing: 0.7em)[
#par[ #set block(spacing: eval(settings.paragraph.spacing))
#set block(spacing: eval(settings.paragraph.spacing)) #set text(
#set text( eval(settings.font.size.education_description),
eval(settings.font.size.education_description), font: settings.font.minor_highlight,
font: settings.font.minor_highlight, )
) #h(0.5cm)
*#place.degree #place.major* \ #place.degree - #place.major \
#if (place.at("track") != "None"){ #if (place.at("track") != "None"){
[#place.track] h(0.5cm)
} [#place.track]
] }
]
] ]
} }
#line(length: 100%, stroke: color + 0.5pt)
= Expérience utile = Expérience utile
#{ #{
for job in config.jobs [ for job in config.jobs [
#par(justify: false)[ #par(justify: false, spacing: 0em)[
#set block(spacing: eval(settings.paragraph.spacing)) #set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
size: eval(settings.font.size.heading), size: eval(settings.font.size.heading),
font: settings.font.general font: settings.font.general
) )
#job.from #job.to \ #job.from #job.to #text(color)[::] *#job.position*
#link(job.company.link)[\@ #job.company.name]
*#job.position*
#link(job.company.link)[#job.company.name]
] ]
#par( #par(
justify: false, justify: false,
leading: eval(settings.paragraph.leading) leading: eval(settings.paragraph.leading),
spacing: 0.7em
)[ )[
#set block(spacing: eval(settings.paragraph.spacing)) #set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
size: eval(settings.font.size.description), size: eval(settings.font.size.description),
font: settings.font.general font: settings.font.minor_highlight
) )
#{ #{
for point in job.description [ for point in job.description [
@ -206,12 +201,13 @@
#par( #par(
justify: true, justify: true,
leading: eval(settings.paragraph.leading), leading: eval(settings.paragraph.leading),
spacing: 0.7em
)[ )[
#set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
size: eval(settings.font.size.tags), size: eval(settings.font.size.tags),
font: settings.font.minor_highlight font: settings.font.minor_highlight
) )
#set block(spacing: eval(settings.paragraph.spacing))
#{ #{
let tag_line = job.tags.join(" ") let tag_line = job.tags.join(" ")
tag_line tag_line
@ -220,15 +216,12 @@
] ]
} }
#line(length: 100%, stroke: color + 0.5pt)
= Projets Scolaires = Projets Scolaires
#{ #{
for project in config.projects.school [ for project in config.projects.school [
#par( #block(spacing: 0.7em)[
justify: true,
leading: eval(settings.paragraph.leading)
)[
#par[
#set block(spacing: eval(settings.paragraph.spacing)) #set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
size: eval(settings.font.size.heading), size: eval(settings.font.size.heading),
@ -240,11 +233,11 @@
} }
#link(project.main.link)[#project.main.name] #link(project.main.link)[#project.main.name]
] ]
#par[ #par(spacing: 0.7em,)[
#set block(spacing: eval(settings.paragraph.spacing)) #set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
size: eval(settings.font.size.description), size: eval(settings.font.size.description),
font: settings.font.general font: settings.font.minor_highlight
) )
#{ #{
for point in project.description [ for point in project.description [
@ -255,6 +248,7 @@
#par( #par(
justify: true, justify: true,
leading: eval(settings.paragraph.leading), leading: eval(settings.paragraph.leading),
spacing: 0.7em,
)[ )[
#set block(spacing: eval(settings.paragraph.spacing)) #set block(spacing: eval(settings.paragraph.spacing))
#set text( #set text(
@ -266,19 +260,16 @@
tag_line tag_line
} }
] ]
]
] ]
} }
]}
]} #{
grid(
#{ columns: (2fr, 5fr),
grid( column-gutter: 3em,
columns: (2fr, 5fr), sidebarSection,
column-gutter: 3em, mainSection,
sidebarSection, )
mainSection, }
)
}

View file

@ -7,13 +7,13 @@ font:
tags: 8pt tags: 8pt
education_description: 8pt education_description: 8pt
contacts: 8pt contacts: 8pt
general: "Helvetica Neue" general: "LiveOverfont"
minor_highlight: "Helvetica Neue" minor_highlight: "libertinus serif"
paragraph: paragraph:
# Distance between lines # Distance between lines
leading: 4pt leading: 4pt
spacing: 0.9em spacing: 0.0em
# dont show address & phone number # dont show address & phone number
public: false public: false