refactor[resume]: lots of small changes
This commit is contained in:
parent
88aa68e915
commit
8225f465bc
|
@ -23,7 +23,6 @@ module.exports = function (eleventyConfig) {
|
||||||
eleventyConfig.addWatchTarget("./src/scss/");
|
eleventyConfig.addWatchTarget("./src/scss/");
|
||||||
eleventyConfig.setLibrary("md", markdownLib);
|
eleventyConfig.setLibrary("md", markdownLib);
|
||||||
eleventyConfig.addPlugin(pluginNavigation);
|
eleventyConfig.addPlugin(pluginNavigation);
|
||||||
eleventyConfig.setUseGitIgnore(false);
|
|
||||||
eleventyConfig.addPassthroughCopy({
|
eleventyConfig.addPassthroughCopy({
|
||||||
"assets/": "./",
|
"assets/": "./",
|
||||||
});
|
});
|
||||||
|
@ -100,6 +99,10 @@ module.exports = function (eleventyConfig) {
|
||||||
return year.toString();
|
return year.toString();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
eleventyConfig.addFilter("renderMarkdown", function (rawString) {
|
||||||
|
return markdownLib.renderInline(rawString);
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
markdownTemplateEngine: "njk",
|
markdownTemplateEngine: "njk",
|
||||||
passthroughFileCopy: true,
|
passthroughFileCopy: true,
|
||||||
|
|
|
@ -17,8 +17,8 @@ contacts:
|
||||||
url: https://signal.org/
|
url: https://signal.org/
|
||||||
icon: fa fa-phone
|
icon: fa fa-phone
|
||||||
|
|
||||||
Brest, France:
|
Toulouse, France:
|
||||||
url: https://www.openstreetmap.org/#map=12/48.3930/-4.4601
|
url: https://www.openstreetmap.org/relation/35738#map=12/43.6/1.44
|
||||||
icon: fa fa-location-arrow
|
icon: fa fa-location-arrow
|
||||||
|
|
||||||
socials:
|
socials:
|
||||||
|
@ -40,7 +40,7 @@ experience:
|
||||||
title: Professional experience
|
title: Professional experience
|
||||||
list:
|
list:
|
||||||
Bio-cleaning agent:
|
Bio-cleaning agent:
|
||||||
description: Blue-collar internship at the Centrer Hospitalier Régional Universitaire de Brest (CHRU) for a two-month period. I learned to organize and work efficiently in a team.
|
description: Blue-collar internship at the [Centrer Hospitalier Régional Universitaire de Brest (CHRU)](https://www.chu-brest.fr/fr) for a two-month period. I learned to organize and work efficiently in a team.
|
||||||
date: Summer 2021
|
date: Summer 2021
|
||||||
|
|
||||||
school_projects:
|
school_projects:
|
||||||
|
@ -50,34 +50,35 @@ school_projects:
|
||||||
repo: https://git.inpt.fr/tobgang/sagittarius
|
repo: https://git.inpt.fr/tobgang/sagittarius
|
||||||
pdf: https://git.inpt.fr/tobgang/sagittarius-pdf/-/blob/master/iteration3/rapport3.pdf
|
pdf: https://git.inpt.fr/tobgang/sagittarius-pdf/-/blob/master/iteration3/rapport3.pdf
|
||||||
role: Author
|
role: Author
|
||||||
description:
|
description: From an object oriented programming project in [Java](https://en.wikipedia.org/wiki/Java_(programming_language)), a little 2D turn-based game inspired by [a game under the same name by George Prosser](https://gprosser.itch.io/sagittarius).
|
||||||
As a result of an object oriented programming project in java,
|
|
||||||
here is a little 2D turn-based game inspired by a game under the same name
|
|
||||||
by George Prosser.
|
|
||||||
|
|
||||||
Minishell:
|
Minishell:
|
||||||
repo: https://git.inpt.fr/fainsil/minishell
|
repo: https://git.inpt.fr/fainsil/minishell
|
||||||
role: Author
|
role: Author
|
||||||
description: Implementation of a basic shell program in C, capable of launching programs, piping their streams and sending them signals.
|
description: Implementation of a basic [shell program](https://en.wikipedia.org/wiki/Shell_(computing)) in [C](https://en.wikipedia.org/wiki/C_(programming_language)), capable of launching programs, piping their streams and sending them signals.
|
||||||
|
|
||||||
Pagerank:
|
Pagerank:
|
||||||
repo: https://git.inpt.fr/fainsil/pagerank
|
repo: https://git.inpt.fr/fainsil/pagerank
|
||||||
pdf: https://git.inpt.fr/fainsil/pagerank/-/blob/master/doc/rapport.pdf
|
pdf: https://git.inpt.fr/fainsil/pagerank/-/blob/master/doc/rapport.pdf
|
||||||
role: Author
|
role: Author
|
||||||
description: Implementation of an iterative algorithm in Ada to compute the pagerank of a given network as quickly and efficiently as possible.
|
description: Implementation of an iterative algorithm in [Ada](https://en.wikipedia.org/wiki/Ada_(programming_language)) to compute the [pagerank](https://en.wikipedia.org/wiki/PageRank) of a given network as quickly and efficiently as possible.
|
||||||
|
|
||||||
personnal_projects:
|
personnal_projects:
|
||||||
title: Personnal projects
|
title: Personnal projects
|
||||||
list:
|
list:
|
||||||
|
net7/INP-net:
|
||||||
|
role: Treasurer/President
|
||||||
|
description: Active member of my school's computer association which provides many services to over 10,000 students.
|
||||||
|
|
||||||
B00 plays GBA:
|
B00 plays GBA:
|
||||||
repo: https://git.inpt.fr/fainsil/booplaysgba/
|
repo: https://git.inpt.fr/fainsil/booplaysgba/
|
||||||
role: Author
|
role: Author
|
||||||
description: Using technologies such as websocket, redis, docker, rtmp, mgba and gluing it all together with Python, we get a collaborative emulator inspired from TwitchPlaysPokemon.
|
description: Using technologies such as [websocket](https://websockets.readthedocs.io/en/stable/), [redis](https://redis.io/), [docker](https://www.docker.com/), [rtmp](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol), [mgba](https://github.com/mgba-emu/mgba) and gluing it all together with [Python](https://en.wikipedia.org/wiki/Python_(programming_language)), we get a collaborative emulator inspired from [TwitchPlaysPokemon](https://en.wikipedia.org/wiki/Twitch_Plays_Pok%C3%A9mon).
|
||||||
|
|
||||||
This website:
|
Personnal website:
|
||||||
repo: https://git.inpt.fr/fainsil/personnal-website/
|
repo: https://git.inpt.fr/fainsil/personnal-website/
|
||||||
role: Author
|
role: Author
|
||||||
description: I made this website almost entirely from scratch, I used the static site generetor 11ty.js to simplify the process thanks to its templating system. I learned a lot about HTML, CSS, Javascript and it also allowed me to strengthen my git skills.
|
description: Simple website built with the static site generetor [11ty.js](https://www.11ty.dev/). Made with [Nunjucks](https://mozilla.github.io/nunjucks/), [SCSS](https://sass-lang.com/), [Javascript](https://developer.mozilla.org/fr/docs/Web/JavaScript), [Yarn](https://yarnpkg.com/) and autodeployed with a [GitLab pipeline](https://git.inpt.fr/fainsil/personnal-website/-/pipelines).
|
||||||
|
|
||||||
education:
|
education:
|
||||||
title: Education
|
title: Education
|
||||||
|
@ -110,51 +111,52 @@ skills:
|
||||||
Text Processing:
|
Text Processing:
|
||||||
level: advanced
|
level: advanced
|
||||||
tags:
|
tags:
|
||||||
- Word
|
- "[Word](https://www.microsoft.com/fr-fr/microsoft-365/word)"
|
||||||
- Excel
|
- "[Excel](https://www.microsoft.com/fr-fr/microsoft-365/excel)"
|
||||||
- LaTeX
|
- "[LaTeX](https://www.latex-project.org/)"
|
||||||
- Markdown
|
- "[Markdown](https://en.wikipedia.org/wiki/Markdown)"
|
||||||
|
|
||||||
Scientific Computing:
|
Scientific Computing:
|
||||||
level: advanced
|
level: advanced
|
||||||
tags:
|
tags:
|
||||||
- Numpy
|
- "[Numpy](https://www.microsoft.com/fr-fr/microsoft-365/word)"
|
||||||
- Tensorflow
|
- "[Matplotlib](https://matplotlib.org/)"
|
||||||
|
- "[Tensorflow](https://www.tensorflow.org/)"
|
||||||
|
|
||||||
AdminSys:
|
AdminSys:
|
||||||
level: advanced
|
level: advanced
|
||||||
tags:
|
tags:
|
||||||
- Linux
|
- "[Linux](https://en.wikipedia.org/wiki/Linux)"
|
||||||
- Git
|
- "[Git](https://git-scm.com/)"
|
||||||
- Apache
|
- "[Apache](https://httpd.apache.org/)"
|
||||||
- Nginx
|
- "[Nginx](https://www.nginx.com/)"
|
||||||
|
|
||||||
CI/CD:
|
CI/CD:
|
||||||
level: intermediate
|
level: intermediate
|
||||||
tags:
|
tags:
|
||||||
- Docker
|
- "[Docker](https://www.docker.com/)"
|
||||||
- Kubernetes
|
- "[Kubernetes](https://kubernetes.io/)"
|
||||||
|
|
||||||
Databases:
|
Databases:
|
||||||
level: intermediate
|
level: intermediate
|
||||||
tags:
|
tags:
|
||||||
- SQL
|
- "[SQL](https://en.wikipedia.org/wiki/SQL)"
|
||||||
- Redis
|
- "[Redis](https://redis.io/)"
|
||||||
- Prisma
|
- "[Prisma](https://www.prisma.io/)"
|
||||||
|
|
||||||
Web Development:
|
Web Development:
|
||||||
level: intermediate
|
level: intermediate
|
||||||
tags:
|
tags:
|
||||||
- Django
|
- "[Django](https://www.djangoproject.com/)"
|
||||||
- 11ty.js
|
- "[11ty.js](https://www.11ty.dev/)"
|
||||||
- Svelte
|
- "[Svelte](https://svelte.dev/)"
|
||||||
|
|
||||||
Licenses:
|
Licenses:
|
||||||
level: french
|
level: french
|
||||||
tags:
|
tags:
|
||||||
- AM
|
- "[AM](https://www.securite-routiere.gouv.fr/les-differents-permis-de-conduire/permis-cyclomoteur-categorie-am)"
|
||||||
- B
|
- "[B](https://www.securite-routiere.gouv.fr/les-differents-permis-de-conduire/permis-auto-categorie-b)"
|
||||||
- B1
|
- "[B1](https://www.securite-routiere.gouv.fr/les-differents-permis-de-conduire/permis-auto-categorie-b/passer-le-permis-b1)"
|
||||||
|
|
||||||
reading:
|
reading:
|
||||||
title: Readings
|
title: Readings
|
||||||
|
@ -222,7 +224,7 @@ interests:
|
||||||
GitHub/Gitlab:
|
GitHub/Gitlab:
|
||||||
summary: Regular open source software user and tinkerer.
|
summary: Regular open source software user and tinkerer.
|
||||||
tags:
|
tags:
|
||||||
- Git
|
- "[Git](https://git-scm.com/)"
|
||||||
- Open Source
|
- Open Source
|
||||||
|
|
||||||
Archery:
|
Archery:
|
||||||
|
|
|
@ -17,8 +17,8 @@ contacts:
|
||||||
url: https://signal.org/
|
url: https://signal.org/
|
||||||
icon: fa fa-phone
|
icon: fa fa-phone
|
||||||
|
|
||||||
Brest, France:
|
Toulouse, France:
|
||||||
url: https://www.openstreetmap.org/#map=12/48.3930/-4.4601
|
url: https://www.openstreetmap.org/relation/35738#map=12/43.6/1.44
|
||||||
icon: fa fa-location-arrow
|
icon: fa fa-location-arrow
|
||||||
|
|
||||||
socials:
|
socials:
|
||||||
|
@ -36,6 +36,13 @@ socials:
|
||||||
url: https://matrix.to/#/@fainsil:inpt.fr
|
url: https://matrix.to/#/@fainsil:inpt.fr
|
||||||
icon: fa fa-matrix-org
|
icon: fa fa-matrix-org
|
||||||
|
|
||||||
|
experience:
|
||||||
|
title: Expérience professionnelle
|
||||||
|
list:
|
||||||
|
Agent de bio-nettoyage:
|
||||||
|
description: Stage ouvrier au [Centre Hospitalier Régional Universitaire de Brest (CHRU)](https://www.chu-brest.fr/fr) pour une période de deux mois. J'ai appris à m'organiser et à travailler efficacement en équipe.
|
||||||
|
date: Été 2021
|
||||||
|
|
||||||
school_projects:
|
school_projects:
|
||||||
title: Projets scolaires
|
title: Projets scolaires
|
||||||
list:
|
list:
|
||||||
|
@ -43,38 +50,35 @@ school_projects:
|
||||||
repo: https://git.inpt.fr/tobgang/sagittarius
|
repo: https://git.inpt.fr/tobgang/sagittarius
|
||||||
pdf: https://git.inpt.fr/tobgang/sagittarius-pdf/-/blob/master/iteration3/rapport3.pdf
|
pdf: https://git.inpt.fr/tobgang/sagittarius-pdf/-/blob/master/iteration3/rapport3.pdf
|
||||||
role: Author
|
role: Author
|
||||||
description: Suite à un projet de programmation orientée objet en java, voici un petit jeu 2D au tour par tour inspiré d'un jeu du même nom de George Prosser.
|
description: Issu d'un projet de programmation orientée objet en [Java](https://en.wikipedia.org/wiki/Java_(programming_language)), un petit jeu 2D au tour par tour inspiré d'un [jeu du même nom de George Prosser](https://gprosser.itch.io/sagittarius).
|
||||||
|
|
||||||
Minishell:
|
Minishell:
|
||||||
repo: https://git.inpt.fr/fainsil/minishell
|
repo: https://git.inpt.fr/fainsil/minishell
|
||||||
role: Author
|
role: Author
|
||||||
description: Implémentation d'un shell en C, capable d'exécuter des programmes, de rediriger leurs flux et de leur envoyer des signaux.
|
description: Implémentation d'un [shell](https://en.wikipedia.org/wiki/Shell_(computing)) en [C](https://en.wikipedia.org/wiki/C_(programming_language)), capable d'exécuter des programmes, de rediriger leurs flux et de leur envoyer des signaux.
|
||||||
|
|
||||||
Pagerank:
|
Pagerank:
|
||||||
repo: https://git.inpt.fr/fainsil/pagerank
|
repo: https://git.inpt.fr/fainsil/pagerank
|
||||||
pdf: https://git.inpt.fr/fainsil/pagerank/-/blob/master/doc/rapport.pdf
|
pdf: https://git.inpt.fr/fainsil/pagerank/-/blob/master/doc/rapport.pdf
|
||||||
role: Author
|
role: Author
|
||||||
description: Mise en œuvre d'un algorithme itératif en Ada pour calculer le pagerank d'un réseau donné, aussi rapidement et efficacement que possible.
|
description: Mise en œuvre d'un algorithme itératif en [Ada](https://en.wikipedia.org/wiki/Ada_(programming_language)) pour calculer le [pagerank](https://en.wikipedia.org/wiki/PageRank) d'un réseau donné, aussi rapidement et efficacement que possible.
|
||||||
|
|
||||||
personnal_projects:
|
personnal_projects:
|
||||||
title: Projets personnels
|
title: Projets personnels
|
||||||
list:
|
list:
|
||||||
|
net7/INP-net:
|
||||||
|
role: Trésorier/Président
|
||||||
|
description: Membre actif de l'association informatique de mon école qui fournit de nombreux services à plus de 10 000 étudiants.
|
||||||
|
|
||||||
B00 plays GBA:
|
B00 plays GBA:
|
||||||
repo: https://git.inpt.fr/fainsil/booplaysgba/
|
repo: https://git.inpt.fr/fainsil/booplaysgba/
|
||||||
role: Author
|
role: Author
|
||||||
description: En utilisant des technologies telles que websocket, redis, docker, rtmp, mgba et en collant le tout avec Python, on obtient un émulateur collaboratif inspiré de TwitchPlaysPokemon.
|
description: En utilisant des technologies telles que [websocket](https://websockets.readthedocs.io/en/stable/), [redis](https://redis.io/), [docker](https://www.docker.com/), [rtmp](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol), [mgba](https://github.com/mgba-emu/mgba) et en collant le tout avec [Python](https://en.wikipedia.org/wiki/Python_(programming_language)), on obtient un émulateur collaboratif inspiré de [TwitchPlaysPokemon](https://en.wikipedia.org/wiki/Twitch_Plays_Pok%C3%A9mon).
|
||||||
|
|
||||||
Ce site web:
|
Ce site web:
|
||||||
repo: https://git.inpt.fr/fainsil/personnal-website/
|
repo: https://git.inpt.fr/fainsil/personnal-website/
|
||||||
role: Author
|
role: Author
|
||||||
description: J'ai fait ce site presque entièrement de zéro, pour simplifier le processus de création j'ai utilisé le générateur de site statique 11ty.js et son système de templates.
|
description: Site web simple construit avec le générateur de site statique [11ty.js](https://www.11ty.dev/). Réalisé avec [Nunjucks](https://mozilla.github.io/nunjucks/), [SCSS](https://sass-lang.com/), [Javascript](https://developer.mozilla.org/fr/docs/Web/JavaScript), [Yarn](https://yarnpkg.com/) et autodéployé avec un [pipeline GitLab](https://git.inpt.fr/fainsil/personnal-website/-/pipelines).
|
||||||
|
|
||||||
experience:
|
|
||||||
title: Expérience professionnelle
|
|
||||||
list:
|
|
||||||
Agent de bio-nettoyage:
|
|
||||||
description: Stage ouvrier au Centre Hospitalier Régional Universitaire de Brest (CHRU) pour une période de deux mois. J'ai appris à m'organiser et à travailler efficacement en équipe.
|
|
||||||
date: Été 2021
|
|
||||||
|
|
||||||
education:
|
education:
|
||||||
title: Éducation
|
title: Éducation
|
||||||
|
@ -106,52 +110,51 @@ skills:
|
||||||
Traitement de texte:
|
Traitement de texte:
|
||||||
level: avancé
|
level: avancé
|
||||||
tags:
|
tags:
|
||||||
- Word
|
- "[Word](https://www.microsoft.com/fr-fr/microsoft-365/word)"
|
||||||
- Excel
|
- "[Excel](https://www.microsoft.com/fr-fr/microsoft-365/excel)"
|
||||||
- LaTeX
|
- "[LaTeX](https://www.latex-project.org/)"
|
||||||
- Markdown
|
- "[Markdown](https://en.wikipedia.org/wiki/Markdown)"
|
||||||
|
|
||||||
Calcul scientifique:
|
Calcul scientifique:
|
||||||
level: avancé
|
level: avancé
|
||||||
tags:
|
tags:
|
||||||
- Numpy
|
- "[Numpy](https://www.microsoft.com/fr-fr/microsoft-365/word)"
|
||||||
- Tensorflow
|
- "[Matplotlib](https://matplotlib.org/)"
|
||||||
- Pandas
|
- "[Tensorflow](https://www.tensorflow.org/)"
|
||||||
-
|
|
||||||
|
|
||||||
AdminSys:
|
AdminSys:
|
||||||
level: advanced
|
level: advanced
|
||||||
tags:
|
tags:
|
||||||
- Linux
|
- "[Linux](https://en.wikipedia.org/wiki/Linux)"
|
||||||
- Git
|
- "[Git](https://git-scm.com/)"
|
||||||
- Apache
|
- "[Apache](https://httpd.apache.org/)"
|
||||||
- Nginx
|
- "[Nginx](https://www.nginx.com/)"
|
||||||
|
|
||||||
CI/CD:
|
CI/CD:
|
||||||
level: intermediate
|
level: intermediate
|
||||||
tags:
|
tags:
|
||||||
- Docker
|
- "[Docker](https://www.docker.com/)"
|
||||||
- Kubernetes
|
- "[Kubernetes](https://kubernetes.io/)"
|
||||||
|
|
||||||
Base de données:
|
Base de données:
|
||||||
level: intermediate
|
level: intermediate
|
||||||
tags:
|
tags:
|
||||||
- SQL
|
- "[SQL](https://en.wikipedia.org/wiki/SQL)"
|
||||||
- Redis
|
- "[Redis](https://redis.io/)"
|
||||||
- Prisma
|
- "[Prisma](https://www.prisma.io/)"
|
||||||
|
|
||||||
Développement web:
|
Développement web:
|
||||||
level: intermédiaire
|
level: intermédiaire
|
||||||
tags:
|
tags:
|
||||||
- Django
|
- "[Django](https://www.djangoproject.com/)"
|
||||||
- 11ty.js
|
- "[11ty.js](https://www.11ty.dev/)"
|
||||||
- Svelte
|
- "[Svelte](https://svelte.dev/)"
|
||||||
|
|
||||||
Permis:
|
Permis:
|
||||||
tags:
|
tags:
|
||||||
- AM
|
- "[AM](https://www.securite-routiere.gouv.fr/les-differents-permis-de-conduire/permis-cyclomoteur-categorie-am)"
|
||||||
- B
|
- "[B](https://www.securite-routiere.gouv.fr/les-differents-permis-de-conduire/permis-auto-categorie-b)"
|
||||||
- B1
|
- "[B1](https://www.securite-routiere.gouv.fr/les-differents-permis-de-conduire/permis-auto-categorie-b/passer-le-permis-b1)"
|
||||||
|
|
||||||
reading:
|
reading:
|
||||||
title: Lectures
|
title: Lectures
|
||||||
|
@ -219,7 +222,7 @@ interests:
|
||||||
GitHub/Gitlab:
|
GitHub/Gitlab:
|
||||||
summary: Utilisateur régulier de logiciels open source.
|
summary: Utilisateur régulier de logiciels open source.
|
||||||
tags:
|
tags:
|
||||||
- Git
|
- "[Git](https://git-scm.com/)"
|
||||||
- Open Source
|
- Open Source
|
||||||
|
|
||||||
Tir à l'arc:
|
Tir à l'arc:
|
||||||
|
|
|
@ -20,7 +20,8 @@ Hi, my name's Laurent Fainsin, and I'm currently an M1 [engineering](https://www
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h3>{{ key }}</h3>
|
<h3>{{ key }}</h3>
|
||||||
<p>{{ project.description }}</p>
|
{{- project.description | renderMarkdown | safe -}}
|
||||||
|
{%- if project.pdf or project.repo -%}
|
||||||
<div class="project-links">
|
<div class="project-links">
|
||||||
{%- if project.pdf -%}
|
{%- if project.pdf -%}
|
||||||
<a class="fa fa-file-pdf-o" href="{{ 'project.pdf' | url }}"></a>
|
<a class="fa fa-file-pdf-o" href="{{ 'project.pdf' | url }}"></a>
|
||||||
|
@ -29,6 +30,7 @@ Hi, my name's Laurent Fainsin, and I'm currently an M1 [engineering](https://www
|
||||||
<a class="fa fa-git" href="{{ project.repo }}"></a>
|
<a class="fa fa-git" href="{{ project.repo }}"></a>
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
</div>
|
</div>
|
||||||
|
{%- endif -%}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
@ -23,191 +23,228 @@ permalink: "resume/{{ resume.locale }}/index.html"
|
||||||
{% for page in pagination.pages %}
|
{% for page in pagination.pages %}
|
||||||
{% if page.locale != resume.locale %}
|
{% if page.locale != resume.locale %}
|
||||||
<a href="{{ pagination.hrefs[loop.index-1] }}" target="_self">
|
<a href="{{ pagination.hrefs[loop.index-1] }}" target="_self">
|
||||||
<span class="{{ page.flag_icon }}"></span><span style="text-transform:uppercase;">{{ page.locale }}</span>
|
<i class="{{ page.flag_icon }}"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endblock header %}
|
{% endblock header %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row">
|
<div id="resume">
|
||||||
<div class="col-1">
|
<div id="left">
|
||||||
|
|
||||||
<h1>{{ resume.name }}
|
<section>
|
||||||
<small>({{ resume.info.label }})</small>
|
<h1>{{ resume.name }}
|
||||||
</h1>
|
<small>({{ resume.info.label }})</small>
|
||||||
|
</h1>
|
||||||
|
</section>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.experience.title }}</h2>
|
<section>
|
||||||
{% for key, exp in resume.experience.list %}
|
<h2>{{ resume.experience.title }}</h2>
|
||||||
<section>
|
{% for key, exp in resume.experience.list %}
|
||||||
<h3>
|
<div>
|
||||||
{{ key }}
|
<h3>
|
||||||
<small>({{ exp.date }})</small>
|
{{ key }}
|
||||||
</h3>
|
<small>({{ exp.date }})</small>
|
||||||
<p>{{ exp.description }}</p>
|
</h3>
|
||||||
</section>
|
<p>{{ exp.description | renderMarkdown | safe }}</p>
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<h2>{{ resume.school_projects.title }}</h2>
|
|
||||||
{% for key, project in resume.school_projects.list %}
|
|
||||||
<section>
|
|
||||||
<h3>{{ key }}</h3>
|
|
||||||
<p>{{ project.description }}</p>
|
|
||||||
|
|
||||||
<div class="project-links">
|
|
||||||
{% if project.pdf %}
|
|
||||||
<a class="fa fa-file-pdf-o" href="{{ project.pdf }}"></a>
|
|
||||||
{% endif %}
|
|
||||||
{% if project.repo %}
|
|
||||||
<a class="fa fa-git" href="{{ project.repo }}"></a>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<h2>{{ resume.personnal_projects.title }}</h2>
|
|
||||||
{% for key, project in resume.personnal_projects.list %}
|
|
||||||
<section>
|
|
||||||
<h3>{{ key }}</h3>
|
|
||||||
<p>{{ project.description }}</p>
|
|
||||||
<div class="project-links">
|
|
||||||
{% if project.pdf %}
|
|
||||||
<a class="fa fa-file-pdf-o" href="{{ 'project.pdf' | url }}"></a>
|
|
||||||
{% endif %}
|
|
||||||
{% if project.repo %}
|
|
||||||
<a class="fa fa-git" href="{{ project.repo }}"></a>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<h2>{{ resume.reading.title }}</h2>
|
|
||||||
<ul>
|
|
||||||
{% for key, read in resume.reading.list %}
|
|
||||||
<li>
|
|
||||||
<a href="{{ read.url }}">{{ key }}</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</section>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.interests.title }}</h2>
|
<section>
|
||||||
{% for key, interest in resume.interests.list %}
|
<h2>{{ resume.school_projects.title }}</h2>
|
||||||
<section>
|
{% for key, project in resume.school_projects.list %}
|
||||||
<h3>{{ key }}</h3>
|
<div>
|
||||||
<p>{{ interest.summary }}</p>
|
<h3>{{ key }}</h3>
|
||||||
<ul>
|
<p>{{ project.description | renderMarkdown | safe }}</p>
|
||||||
{% for tag in interest.tags %}
|
|
||||||
<li class="tag">{{ tag }}</li>
|
{% if project.pdf or project.repo %}
|
||||||
{% endfor %}
|
<span class="project-links">
|
||||||
</ul>
|
{% if project.pdf %}
|
||||||
</section>
|
<a class="fa fa-file-pdf-o" href="{{ project.pdf }}"></a>
|
||||||
{% endfor %}
|
{% endif %}
|
||||||
|
{% if project.repo %}
|
||||||
|
<a class="fa fa-git" href="{{ project.repo }}"></a>
|
||||||
|
{% endif %}
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2>{{ resume.personnal_projects.title }}</h2>
|
||||||
|
{% for key, project in resume.personnal_projects.list %}
|
||||||
|
<div>
|
||||||
|
<h3>{{ key }}</h3>
|
||||||
|
<p>{{ project.description | renderMarkdown | safe }}</p>
|
||||||
|
|
||||||
|
{% if project.pdf or project.repo %}
|
||||||
|
<span class="project-links">
|
||||||
|
{% if project.pdf %}
|
||||||
|
<a class="fa fa-file-pdf-o" href="{{ 'project.pdf' | url }}"></a>
|
||||||
|
{% endif %}
|
||||||
|
{% if project.repo %}
|
||||||
|
<a class="fa fa-git" href="{{ project.repo }}"></a>
|
||||||
|
{% endif %}
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2>{{ resume.reading.title }}</h2>
|
||||||
|
<ul>
|
||||||
|
{% for key, read in resume.reading.list %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ read.url }}">{{ key }}</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2>{{ resume.interests.title }}</h2>
|
||||||
|
{% for key, interest in resume.interests.list %}
|
||||||
|
<div>
|
||||||
|
<h3>{{ key }}</h3>
|
||||||
|
<p>{{ interest.summary }}</p>
|
||||||
|
<div class="tags">
|
||||||
|
{% for tag in interest.tags %}
|
||||||
|
{% if '[' in tag and ']' in tag %}
|
||||||
|
{{ tag | renderMarkdown | safe }}
|
||||||
|
{% else %}
|
||||||
|
<a>{{ tag }}</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</section>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-2">
|
<div id="right">
|
||||||
|
|
||||||
<h2>{{ resume.contacts.title }}</h2>
|
<section>
|
||||||
<ul>
|
<h2>{{ resume.contacts.title }}</h2>
|
||||||
{% for key, contact in resume.contacts.list %}
|
<ul>
|
||||||
<li>
|
{% for key, contact in resume.contacts.list %}
|
||||||
<span class="{{ contact.icon }}"></span>
|
<li>
|
||||||
<a href="{{ contact.url }}">{{key}}</a>
|
<i class="{{ contact.icon }}"></i>
|
||||||
</li>
|
<a href="{{ contact.url }}">{{key}}</a>
|
||||||
{% endfor %}
|
</li>
|
||||||
</ul>
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.socials.title }}</h2>
|
<section>
|
||||||
<ul>
|
<h2>{{ resume.socials.title }}</h2>
|
||||||
{% for key, social in resume.socials.list %}
|
<ul>
|
||||||
<li>
|
{% for key, social in resume.socials.list %}
|
||||||
<span class="{{social.icon}}"></span>
|
<li>
|
||||||
<a href="{{social.url}}">{{key}}</a>
|
<i class="{{social.icon}}"></i>
|
||||||
</li>
|
<a href="{{social.url}}">{{key}}</a>
|
||||||
{% endfor %}
|
</li>
|
||||||
</ul>
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.education.title }}</h2>
|
<section>
|
||||||
<ul class="timeline">
|
<h2>{{ resume.education.title }}</h2>
|
||||||
<span class="arrow-up"></span>
|
<ul class="timeline">
|
||||||
<li class="event"></li>
|
<i class="arrow-up"></i>
|
||||||
{% for key, edu in resume.education.list %}
|
<li class="event"></li>
|
||||||
|
{% for key, edu in resume.education.list %}
|
||||||
|
|
||||||
{% if edu.end != (resume.education.list | list)[loop.index - 2].value.start %}
|
{% if edu.end != (resume.education.list | list)[loop.index - 2].value.start %}
|
||||||
{% if loop.index != 1 %}
|
{% if loop.index != 1 %}
|
||||||
<li class="event"></li>
|
<li class="event"></li>
|
||||||
|
{% endif %}
|
||||||
|
<li class="year">{{ edu.end }}</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li class="year">{{ edu.end }}</li>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<li class="event">
|
<li class="event">
|
||||||
{{ edu.title }}<br>
|
{{ edu.title }}<br>
|
||||||
<a href="{{ edu.url }}">{{ key }}</a>
|
<a href="{{ edu.url }}">{{ key }}</a>
|
||||||
<br>{{ edu.eqv }}
|
<br>{{ edu.eqv }}
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="year">{{ edu.start }}</li>
|
<li class="year">{{ edu.start }}</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<li class="event"></li>
|
<li class="event"></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.skills.title }}</h2>
|
<section>
|
||||||
<ul>
|
<h2>{{ resume.skills.title }}</h2>
|
||||||
{% for key, skill in resume.skills.list %}
|
<ul>
|
||||||
<li>
|
{% for key, skill in resume.skills.list %}
|
||||||
{{ key }}
|
<li>
|
||||||
{% if skill.level %}
|
{{ key }}
|
||||||
<small> ({{ skill.level }}) </small>
|
{% if skill.level %}
|
||||||
{% endif %}
|
<small>({{ skill.level }})</small>
|
||||||
<ul>
|
{% endif %}
|
||||||
{% for tag in skill.tags %}
|
<div class="tags">
|
||||||
<li class="tag">{{ tag }}</li>
|
{% for tag in skill.tags %}
|
||||||
{% endfor %}
|
{% if '[' in tag and ']' in tag %}
|
||||||
</ul>
|
{{ tag | renderMarkdown | safe }}
|
||||||
</li>
|
{% else %}
|
||||||
{% endfor %}
|
<a>{{ tag }}</a>
|
||||||
</ul>
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2>{{ resume.languages.title }}</h2>
|
<section>
|
||||||
<ul>
|
<h2>{{ resume.languages.title }}</h2>
|
||||||
{% for key, lang in resume.languages.list %}
|
<ul>
|
||||||
<li>
|
{% for key, lang in resume.languages.list %}
|
||||||
<span class="{{ lang.icon }}"></span>
|
<li>
|
||||||
{{ key }}
|
<i class="{{ lang.icon }}"></i>
|
||||||
<small>({{ lang.level }})</small>
|
{{ key }}
|
||||||
</li>
|
<small>({{ lang.level }})</small>
|
||||||
{% endfor %}
|
</li>
|
||||||
</ul>
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
<h2>{{ resume.langages.title }}</h2>
|
<section>
|
||||||
<ul>
|
<h2>{{ resume.langages.title }}</h2>
|
||||||
{% for key, lang in resume.langages.list %}
|
<ul>
|
||||||
<li>
|
{% for key, lang in resume.langages.list %}
|
||||||
<span class="{{ lang.icon }}"></span>
|
<li>
|
||||||
{{ key }}
|
<i class="{{ lang.icon }}"></i>
|
||||||
<small>({{ lang.level }})</small>
|
{{ key }}
|
||||||
</li>
|
<small>({{ lang.level }})</small>
|
||||||
{% endfor %}
|
</li>
|
||||||
</ul>
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -8,111 +8,131 @@ header {
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1,
|
#resume {
|
||||||
h2 {
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row {
|
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
|
#left {
|
||||||
|
flex: 65%;
|
||||||
|
padding-right: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#right {
|
||||||
|
flex: 35%;
|
||||||
|
padding-left: 1rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.col-1 {
|
section {
|
||||||
flex: 65%;
|
padding-bottom: 0;
|
||||||
padding-right: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.col-2 {
|
div,
|
||||||
flex: 35%;
|
ul {
|
||||||
padding-left: 1em;
|
margin-bottom: 1rem;
|
||||||
}
|
margin-left: 1rem;
|
||||||
|
|
||||||
ul {
|
.tags {
|
||||||
list-style: none;
|
display: flex;
|
||||||
margin: 0;
|
gap: 0.5rem;
|
||||||
padding-left: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.timeline {
|
a {
|
||||||
li {
|
text-decoration: underline;
|
||||||
|
text-decoration-thickness: 2px;
|
||||||
|
text-decoration-color: #942994;
|
||||||
|
font-size: 1rem;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
text-decoration-color: #d45fd4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 > small {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
small {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding-left: 1rem;
|
||||||
|
padding-bottom: 0;
|
||||||
|
|
||||||
|
&.timeline {
|
||||||
|
padding-left: 1rem;
|
||||||
|
|
||||||
|
.arrow-up {
|
||||||
|
border-left: 5px solid transparent;
|
||||||
|
border-right: 5px solid transparent;
|
||||||
|
border-bottom: 10px solid #c0c5ce;
|
||||||
|
margin-left: 1.25rem;
|
||||||
|
top: -0.7rem;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
&.event {
|
||||||
|
padding: 1rem;
|
||||||
|
margin-left: 1.5rem;
|
||||||
|
border-left: 2px #c0c5ce solid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.arrow-up {
|
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
border-left: 5px solid transparent;
|
|
||||||
border-right: 5px solid transparent;
|
|
||||||
border-bottom: 10px solid #c0c5ce;
|
|
||||||
margin-left: calc(1.25em - 4px);
|
|
||||||
top: -8px;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.event {
|
|
||||||
padding: 0.8em 0 0.8em 2.3em;
|
|
||||||
margin-left: 1.25em;
|
|
||||||
border-left: 2px #c0c5ce solid;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.tag {
|
|
||||||
display: inline;
|
|
||||||
border-bottom: 2px #942994 solid;
|
|
||||||
border-radius: 0.2em;
|
|
||||||
margin-right: 0.3em;
|
|
||||||
font-size: 17px;
|
|
||||||
}
|
|
||||||
|
|
||||||
small {
|
|
||||||
font-size: 0.7em;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1>small {
|
|
||||||
font-size: 0.45em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media print {
|
@media print {
|
||||||
@page {
|
@page {
|
||||||
size: auto;
|
size: auto;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
body,
|
body,
|
||||||
html {
|
html {
|
||||||
background-color: white !important;
|
|
||||||
color: black;
|
color: black;
|
||||||
max-width: 100%;
|
|
||||||
color-adjust: exact !important;
|
color-adjust: exact !important;
|
||||||
-webkit-print-color-adjust: exact !important;
|
background-color: white !important;
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
max-width: 100%;
|
||||||
margin: 2em;
|
|
||||||
font-size: 13px;
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
margin: 0;
|
||||||
.event {
|
padding: 0;
|
||||||
border-left: 2px black solid;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tag {
|
|
||||||
font-size: 10px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: black;
|
color: black;
|
||||||
text-decoration: none;
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
margin: 1rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
.tag {
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.timeline {
|
||||||
|
li.event {
|
||||||
|
border-left-color: #000 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.arrow-up {
|
||||||
|
border-bottom-color: #000 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
header,
|
header,
|
||||||
footer,
|
footer,
|
||||||
.btn-back,
|
#btn-back,
|
||||||
a.fa {
|
span {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,18 +11,17 @@ $h1-size: 3rem;
|
||||||
|
|
||||||
/* inter-regular - latin */
|
/* inter-regular - latin */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Inter';
|
font-family: "Inter";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: local(''),
|
src: local(""), url("/fonts/inter-v7-latin-regular.woff2") format("woff2");
|
||||||
url('/fonts/inter-v7-latin-regular.woff2') format('woff2'),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background-color: $background;
|
background-color: $background;
|
||||||
color: $foreground-text;
|
color: $foreground-text;
|
||||||
font-family: 'Inter', sans-serif;
|
font-family: "Inter", sans-serif;
|
||||||
text-rendering: optimizeLegibility;
|
text-rendering: optimizeLegibility;
|
||||||
font-size: $font-size;
|
font-size: $font-size;
|
||||||
width: 60rem;
|
width: 60rem;
|
||||||
|
@ -94,29 +93,29 @@ video {
|
||||||
}
|
}
|
||||||
|
|
||||||
section {
|
section {
|
||||||
padding-left: 1em;
|
padding-left: 1rem;
|
||||||
padding-bottom: 1em;
|
padding-bottom: 1rem;
|
||||||
|
|
||||||
p {
|
p {
|
||||||
padding-left: 1em;
|
padding-left: 1rem;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
margin-bottom: 0.2em;
|
margin-bottom: 0.2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
h3 {
|
h3 {
|
||||||
margin-bottom: 0.3em;
|
margin-bottom: 0.3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
padding-left: 2em;
|
padding-left: 2rem;
|
||||||
padding-bottom: 1em;
|
padding-bottom: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.project-links {
|
.project-links {
|
||||||
padding-left: 1em;
|
padding-left: 1rem;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
padding-left: 0.3em;
|
padding-left: 0.3rem;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue