Initial commit

This commit is contained in:
Gregan 2021-05-03 09:15:49 +02:00
commit 0e5638da3e
82 changed files with 1704 additions and 0 deletions

2
README.md Normal file
View File

@ -0,0 +1,2 @@
# petit_bou
vous pouvez accerder a mon cv sur http/petit_bougitlab.io

14
config-nginx.toml Normal file
View File

@ -0,0 +1,14 @@
baseURL = "https://cv.pavilion.gn"
languageCode = "fr"
theme = "almeida-cv"
title = "CV de Aboubakar- CV"
[params]
colorDark = "#666"
colorLight = "#fff"
colorPageBackground = "#ddd"
colorPrimary = "#e3bfb8"
colorPrimaryText = "#fff"
colorRightColumnBackground = "#f5f5f5"
colorSecondary = "#A8806D"
pages = 1

14
config.toml Normal file
View File

@ -0,0 +1,14 @@
baseURL = "https://greglebreton.gitlab.io/cv"
languageCode = "fr"
theme = "almeida-cv"
title = "greg CV"
[params]
colorDark = "#666"
colorLight = "#fff"
colorPageBackground = "#ddd"
colorPrimary = "#e3bfb8"
colorPrimaryText = "#fff"
colorRightColumnBackground = "#f5f5f5"
colorSecondary = "#A8806D"
pages = 1

81
data/content.yaml Normal file
View File

@ -0,0 +1,81 @@
BasicInfo:
FirstName: Grégory
LastName: Lebreton
Photo: img/profile.jpg
Contacts:
- Icon: fas fa-phone
Info: 06.34.33.21.99
- Icon: fas fa-envelope
Info: greg.lebreton@hotmail.com
- Icon: fas fa-globe
Info: https://greglebreton.gitlab.io/hugo-site/
- Icon: fas fa-map-marker-alt
Info: Paris
Profile: Je suis en formateur technicien DevOps au Passe Numérique Pro en partenariat avec le Conservatoire National des Arts et Métiers de Paris.
Experience:
- Employer: SAFRAN AE
Place: Montereau-sur-Jard
Positions:
- Title: Stagiaire développeur C-sharp
Date: Avr 2021 - mai 2021
Details:
- Apprentissage C-sharp, Secteur BlockChain Crypto
- Participation au développement d'un jeu
- Développement outil Web
- Employer: Disneyland Paris
Place: Chessy 77
Positions:
- Title: Opérateur Animateur Attraction
Date: Février 2002 - Septembre 2007
Details:
- Sécurité des personnes
- Respect des procédures
Education:
- Course: Diplôme Concepteur Développeur Informatique
Place: AFPA Paris XII
Date: Mars 2017 - Décembre 2017
Details: Technologies de l'information
Skills:
- Family: Devops
Items:
- Python
- GIT
- VS code (IDE)
- Linux
- Django
- Bash
- Hugo
- Docker
- Virtualbox
- Apache
- Nginx
- Kubernetes
- GCP
Languages:
- Name: Anglais
Level: B1
- Name: ESpagnol
Level: B1
- Name: Allemand
Level: B1
Diplomas:
- Concepteur Développeur Informatique
- Baccalauréat ES
- Brevet des colléges
Interests:
- Réalité virtuelle
- Films / séries
- Musique
- Skateboard

16
layouts/404.html Normal file
View File

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
{{ partial "head.html" . }}
<body>
<div class="content">
<div class="pageNotFound">
<h1>Page not found :(</h1>
<p class="pageNotFound__text">
You're an explorer, aren't ya?<br>
But the page you are attempting to access cannot be found.<br>
Go back to the <a href="{{ "/" | relURL }}">main page</a>
</p>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
{{- partial "head.html" . -}}
<body>
{{- partial "header.html" . -}}
<div id="content">
{{- block "main" . }}{{- end }}
</div>
{{- partial "footer.html" . -}}
</body>
</html>

View File

View File

View File

@ -0,0 +1 @@
/* /404.html 404

25
layouts/index.html Normal file
View File

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="en">
{{ partial "head.html" . }}
<body>
<div class="content">
<div class="content__left">
<h1 class="mainHeading">{{.Site.Data.content.BasicInfo.FirstName}} <span>{{.Site.Data.content.BasicInfo.LastName}}</span></h1>
{{ partial "_profile.html" . }}
{{ partial "_experience.html" . }}
{{ partial "_education.html" . }}
</div>
<div class="content__right">
{{ partial "_avatar.html" . }}
{{ partial "_contacts.html" . }}
{{ partial "_skills.html" . }}
{{ partial "_languages.html" . }}
{{ partial "_diplomas.html" . }}
{{ partial "_interests.html" . }}
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,7 @@
{{ if .Site.Data.content.BasicInfo.Photo }}
<div class="sideSection avatar">
<div class="avatar__container">
<img class="avatar__img" src="{{ .Site.Data.content.BasicInfo.Photo }}" alt="photo of me">
</div>
</div>
{{ end }}

View File

@ -0,0 +1,11 @@
{{ if .Site.Data.content.BasicInfo.Contacts }}
<div class="sideSection contact">
<ul>
{{ range .Site.Data.content.BasicInfo.Contacts }}
<li class="contact__item">
<i class="{{ .Icon }}"></i><span>{{ .Info | safeHTML }}</span>
</li>
{{ end }}
</ul>
</div>
{{ end }}

View File

@ -0,0 +1,14 @@
{{ if .Site.Data.content.Diplomas }}
<div class="sideSection">
<div class="sideSection__heading">
<h2 class="sideSection__title">Diplomes</h2>
</div>
<div class="sideSection__content">
<ul>
{{ range .Site.Data.content.Diplomas }}
<li>{{ . | safeHTML }}</li>
{{ end }}
</ul>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,20 @@
{{ if .Site.Data.content.Education }}
<div id="education" class="section">
<div class="section__heading">
<h2 class="section__title">
Formations
</h2>
</div>
<div class="section__content">
{{ range .Site.Data.content.Education }}
<div class="education__item">
<h3 class="education__title">{{ .Course | safeHTML }}</h3>
<h4 class="education__place">{{ .Place | safeHTML }}</h4>
<h4 class="education__date">{{ .Date | safeHTML }}</h4>
<div class="education__description">{{ .Details | safeHTML }}</div>
</br>
</div>
{{ end }}
</div>
</div>
{{ end }}

View File

@ -0,0 +1,43 @@
{{ if .Site.Data.content.Experience }}
<div id="experience" class="section">
<div class="section__heading">
<h2 class="section__title">Experiences</h2>
</div>
<div class="section__content">
<div class="experience">
{{ range .Site.Data.content.Experience }}
<div class="experience__item">
<div class="experience__header">
<h3 class="experience__company">
{{ .Employer | safeHTML }}
</h3>
<h3 class="experience__place">{{ .Place | safeHTML }}</h3>
</div>
{{ range .Positions }}
<div class="experience__job">
<div class="experience__subheader">
<h3 class="experience__position">
{{ .Title | safeHTML}}
</h3>
<h3 class="experience__date">{{ .Date | safeHTML }}</h3>
</div>
<ul>
{{ range .Details }}
<li class="experience__bullet">{{ . }}</li>
{{ end }}
</ul>
<div class="experience__badges">
<ul>
{{ range .Badges }}
<li class="experience__badge">{{ . }}</li>
{{ end }}
</ul>
</div>
</div>
{{ end }}
</div>
{{ end }}
</div>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,14 @@
{{ if .Site.Data.content.Interests }}
<div class="sideSection">
<div class="sideSection__heading">
<h2 class="sideSection__title"> centre d'intérêt </h2>
</div>
<div class="sideSection__content">
<ul class="interests">
{{ range .Site.Data.content.Interests }}
<li class="interests__item">{{ . | safeHTML }}</li>
{{ end }}
</ul>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,17 @@
{{ if .Site.Data.content.Languages }}
<div class="sideSection">
<div class="sideSection__heading">
<h2 class="sideSection__title">Langues</h2>
</div>
<div class="sideSection__content">
<ul class="language">
{{ range .Site.Data.content.Languages }}
<li class="language__item">
<div class="language__name">{{ .Name | safeHTML }}</div>
<div class="language__level">{{ .Level | safeHTML }}</div>
</li>
{{ end }}
</ul>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,10 @@
{{ if .Site.Data.content.Profile }}
<div id="profile" class="section">
<div class="section__heading">
<h2 class="section__title">Technicien DevOps</h2>
</div>
<div class="section__content">
<p>{{.Site.Data.content.Profile | safeHTML }}</p>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,21 @@
{{ if .Site.Data.content.Skills }}
<div class="sideSection">
<div class="sideSection__heading">
<h2 class="sideSection__title">Compétences</h2>
</div>
<div class="sideSection__content">
<ul class="skills">
<li>
{{ range .Site.Data.content.Skills }}
<ul class="skills__group">
<span>{{ .Family | safeHTML }}</span>
{{ range .Items }}
<li>{{ . | safeHTML }}</li>
{{ end }}
</ul>
{{ end }}
</li>
</ul>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,13 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ .Site.Title }}</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Oswald">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto">
<link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous"/>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
{{ $style := resources.Get "sass/main.scss" | resources.ExecuteAsTemplate "style.main.scss" . | toCSS | minify | fingerprint }}
<link rel="stylesheet" href="{{ $style.Permalink }}" integrity="{{ $style.Data.Integrity }}" >
</head>

28
public/404.html Normal file
View File

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CV de Aboubakar- CV</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Oswald">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto">
<link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous"/>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://petit_bou.gitlab.io/style.main.min.f7f492e636dbf84b8580bef034700249df6efeef94d571791e312de0ba8f506d.css" integrity="sha256-9/SS5jbb&#43;EuFgL7wNHACSd9u/u&#43;U1XF5HjEt4LqPUG0=" >
</head>
<body>
<div class="content">
<div class="pageNotFound">
<h1>Page not found :(</h1>
<p class="pageNotFound__text">
You're an explorer, aren't ya?<br>
But the page you are attempting to access cannot be found.<br>
Go back to the <a href="/">main page</a>
</p>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Categories on CV de Aboubakar- CV</title>
<link>https://petit_bou.gitlab.io/categories/</link>
<description>Recent content in Categories on CV de Aboubakar- CV</description>
<generator>Hugo -- gohugo.io</generator>
<language>fr</language><atom:link href="https://petit_bou.gitlab.io/categories/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

BIN
public/img/avatar.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

341
public/index.html Normal file
View File

@ -0,0 +1,341 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="generator" content="Hugo 0.80.0" />
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CV de Aboubakar- CV</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Oswald">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto">
<link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous"/>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://petit_bou.gitlab.io/style.main.min.f7f492e636dbf84b8580bef034700249df6efeef94d571791e312de0ba8f506d.css" integrity="sha256-9/SS5jbb&#43;EuFgL7wNHACSd9u/u&#43;U1XF5HjEt4LqPUG0=" >
</head>
<body>
<div class="content">
<div class="content__left">
<h1 class="mainHeading">Aboubakar <span>Hydara</span></h1>
<div id="profile" class="section">
<div class="section__heading">
<h2 class="section__title">Profile</h2>
</div>
<div class="section__content">
<p>Je suis en formation au Passe Numérique Pro dans la spécialité Technicien DevOps au Conservatoire National des Arts et Métiers de Paris. Je suis, depuis toujours, fasciné par le milieu de linformatique.</p>
</div>
</div>
<div id="experience" class="section">
<div class="section__heading">
<h2 class="section__title">Experience</h2>
</div>
<div class="section__content">
<div class="experience">
<div class="experience__item">
<div class="experience__header">
<h3 class="experience__company">
SOS MASTER
</h3>
<h3 class="experience__place">Paris 16</h3>
</div>
<div class="experience__job">
<div class="experience__subheader">
<h3 class="experience__position">
Technicien de maintenance
</h3>
<h3 class="experience__date">juin 2020</h3>
</div>
<ul>
<li class="experience__bullet">Télécharger un systéme d&#39;exploitation sur PC et MAC</li>
<li class="experience__bullet">Changer pièce informatique</li>
</ul>
<div class="experience__badges">
<ul>
</ul>
</div>
</div>
</div>
<div class="experience__item">
<div class="experience__header">
<h3 class="experience__company">
Charonne Buro
</h3>
<h3 class="experience__place">Paris 11</h3>
</div>
<div class="experience__job">
<div class="experience__subheader">
<h3 class="experience__position">
Technicien de maintenance informatique
</h3>
<h3 class="experience__date">fév 2020</h3>
</div>
<ul>
<li class="experience__bullet">Changement un système d&#39;exploitation</li>
<li class="experience__bullet">Tester des manettes</li>
<li class="experience__bullet">Changer des RAM et des disque dur</li>
</ul>
<div class="experience__badges">
<ul>
</ul>
</div>
</div>
</div>
<div class="experience__item">
<div class="experience__header">
<h3 class="experience__company">
Home Sweet Mômes
</h3>
<h3 class="experience__place">Paris 18</h3>
</div>
<div class="experience__job">
<div class="experience__subheader">
<h3 class="experience__position">
Animateur bénévole
</h3>
<h3 class="experience__date">Depuis Mai 2020</h3>
</div>
<ul>
<li class="experience__bullet">mise en palce et animation dacatvités ludique sur trottoirs</li>
<li class="experience__bullet">Tenue du stande et vente de produits consommables en vue de soutenir l&#39;association</li>
</ul>
<div class="experience__badges">
<ul>
</ul>
</div>
</div>
</div>
<div class="experience__item">
<div class="experience__header">
<h3 class="experience__company">
ASCEAF
</h3>
<h3 class="experience__place">Paris 19</h3>
</div>
<div class="experience__job">
<div class="experience__subheader">
<h3 class="experience__position">
Animateur
</h3>
<h3 class="experience__date">Depuis dec 2019</h3>
</div>
<ul>
<li class="experience__bullet">Accompagnement en sortie</li>
<li class="experience__bullet">Accueil et animation d&#39;atelier ludique et sportifs</li>
</ul>
<div class="experience__badges">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="education" class="section">
<div class="section__heading">
<h2 class="section__title">
Education
</h2>
</div>
<div class="section__content">
<div class="education__item">
<h3 class="education__title">Diplôme du cnam IV +30 crédits ETC</h3>
<h4 class="education__place">Conservatoire National des Arts et Métiers de Paris 03</h4>
<h4 class="education__date">Nov 2020 - Mai 2021</h4>
<div class="education__description">Technicien DevOps</div>
</div>
<div class="education__item">
<h3 class="education__title">PEE (Parcours Entrée dans lEmploi)</h3>
<h4 class="education__place">Laser Paris 20</h4>
<h4 class="education__date">Oct 2020 - Nov 2020</h4>
<div class="education__description">Elaboration de projet professionnelle (informatique)</div>
</div>
<div class="education__item">
<h3 class="education__title">PEE (Parcours Entrée dans lEmploi)</h3>
<h4 class="education__place">SYNERGIE Paris 11</h4>
<h4 class="education__date">Jan 2020 - Sept 2020</h4>
<div class="education__description">Elaboration de projet professionnelle</div>
</div>
</div>
</div>
</div>
<div class="content__right">
<div class="sideSection avatar">
<div class="avatar__container">
<img class="avatar__img" src="img/Aboubakar%20Hydara.png" alt="photo of me">
</div>
</div>
<div class="sideSection contact">
<ul>
<li class="contact__item">
<i class="fas fa-phone"></i><span>06.05.81.54.20</span>
</li>
<li class="contact__item">
<i class="fas fa-envelope"></i><span>aboubakarhydara51@gmail.com</span>
</li>
<li class="contact__item">
<i class="fas fa-globe"></i><span>petit_bou.gitlab.io</span>
</li>
<li class="contact__item">
<i class="fas fa-map-marker-alt"></i><span>Paris</span>
</li>
</ul>
</div>
<div class="sideSection">
<div class="sideSection__heading">
<h2 class="sideSection__title">Compétences</h2>
</div>
<div class="sideSection__content">
<ul class="skills">
<li>
<ul class="skills__group">
<span>Devops</span>
<li>Python</li>
<li>GIT</li>
<li>VS code (IDE)</li>
<li>Linux</li>
<li>Django</li>
<li>Bash</li>
<li>Hugo</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="sideSection">
<div class="sideSection__heading">
<h2 class="sideSection__title">Langues</h2>
</div>
<div class="sideSection__content">
<ul class="language">
<li class="language__item">
<div class="language__name">English</div>
<div class="language__level">B1</div>
</li>
<li class="language__item">
<div class="language__name">Spanish</div>
<div class="language__level">B1</div>
</li>
</ul>
</div>
</div>
<div class="sideSection">
<div class="sideSection__heading">
<h2 class="sideSection__title">Diplomes</h2>
</div>
<div class="sideSection__content">
<ul>
<li>Certificat PRAP(Préventiondes Risques liés à lActivité Physique) (2020)</li>
<li>Brevet des colléges (2017)</li>
</ul>
</div>
</div>
<div class="sideSection">
<div class="sideSection__heading">
<h2 class="sideSection__title">Interests</h2>
</div>
<div class="sideSection__content">
<ul class="interests">
<li class="interests__item">Animes</li>
<li class="interests__item">Séries</li>
<li class="interests__item">Films</li>
<li class="interests__item">Musique</li>
<li class="interests__item">Basket</li>
</ul>
</div>
</div>
</div>
</div>
</body>
</html>

10
public/index.xml Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>CV de Aboubakar- CV</title>
<link>https://petit_bou.gitlab.io/</link>
<description>Recent content on CV de Aboubakar- CV</description>
<generator>Hugo -- gohugo.io</generator>
<language>fr</language><atom:link href="https://petit_bou.gitlab.io/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

17
public/sitemap.xml Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://petit_bou.gitlab.io/categories/</loc>
</url>
<url>
<loc>https://petit_bou.gitlab.io/</loc>
</url>
<url>
<loc>https://petit_bou.gitlab.io/tags/</loc>
</url>
</urlset>

File diff suppressed because one or more lines are too long

10
public/tags/index.xml Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Tags on CV de Aboubakar- CV</title>
<link>https://petit_bou.gitlab.io/tags/</link>
<description>Recent content in Tags on CV de Aboubakar- CV</description>
<generator>Hugo -- gohugo.io</generator>
<language>fr</language><atom:link href="https://petit_bou.gitlab.io/tags/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"Target":"style.main.min.f7f492e636dbf84b8580bef034700249df6efeef94d571791e312de0ba8f506d.css","MediaType":"text/css","Data":{"Integrity":"sha256-9/SS5jbb+EuFgL7wNHACSd9u/u+U1XF5HjEt4LqPUG0="}}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"Target":"style.main.min.5b330efa68dc2cae8b2e72e4bdb3ea6809a2a85e4ff12133eb0caeb1bdab713b.css","MediaType":"text/css","Data":{"Integrity":"sha256-WzMO+mjcLK6LLnLkvbPqaAmiqF5P8SEz6wyusb2rcTs="}}

BIN
static/img/profile.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

20
themes/almeida-cv/LICENSE Normal file
View File

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2020 Inês Almeida
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -0,0 +1,53 @@
# Almeida CV Theme
Theme to build a customizeable printable HTML/CSS CV.
![Screenshot](images/screenshot-full.png)
# Features
- Online CV with minor responsiveness
- Printable as A4 PDF
- HTML5 + CSS3
- Customizeable colors
## Print your PDF CV
When printing the page in the browser, you'll get a formatted A4 page that can be used as your PDF resume.
If your page holds more than 1 A4 page, the content will be divided into the given amount of pages.
For better formatting, you can set the number of pages in the `config.toml` file.
If badges and other elements with background don't render correctly, remember to toggle the "Background Graphics" option in the print dialog.
# Download
Clone the repo: `git clone https://github.com/ineesalmeida/almeida-cv`
# Installation
## Install Hugo (Extended)
To use almeida-cv theme you need to install Hugo Extended by following https://gohugo.io/getting-started/installing/.
## Create your personal website and run
```
hugo new site <your website's name>
cd <your website's name>/themes/
```
Clone the theme (`git clone https://github.com/ineesalmeida/almeida-cv`) into your themes folder.
Replace the files in your root's directory with the ones on `themes/almeida-cv/exampleSite`.
```
hugo server -D
```
The theme is alive on http://localhost:1313/.
## Customization
You can change the theme colors and number of pages in the `config.toml` file.
Your professional data should be added in the `data/content.yaml`.
# Building
To generate your site in the public folder, execute the following:
```
hugo
```
within the root of your project.
# Contributing
Post bugs and contributions to the issue tracker. Or make a pull request.

View File

@ -0,0 +1,7 @@
// WIDTHS
$width-left-col: 56rem; // 70%
$page-width: 80rem;
$width-right-col: $page-width - $width-left-col;
// ANIMATIONS
$cubic: 0.63, 0.21, 0.76, 1.58;

View File

@ -0,0 +1,49 @@
*,
*::after,
*::before {
margin: 0;
padding: 0;
box-sizing: inherit;
}
html {
font-size: 62.5%;
background-color: $color-background;
@media print {
background-color: $color-white;
}
}
.content {
// A4 paper
width: $page-width;
min-height: paper_height($page-width);
background-color: $color-white;
@media screen and (min-width: 60rem) {
margin: 6rem 0;
@include shadow(1);
@include hz-center;
}
@media print {
margin: 0;
height: paper_height($page-width) * $pages;
}
}
body {
box-sizing: border-box;
}
@media print {
@page {
margin: 0;
size: A4;
}
}
::selection {
color: $color-white;
background-color: darken(rgba($color-primary, 0.6), 10%);
}

View File

@ -0,0 +1,3 @@
@function paper_height($width) {
@return $width / 0.70695553;
}

View File

@ -0,0 +1,34 @@
.content {
position: absolute;
overflow: hidden;
&__left {
float: left;
width: $width-left-col;
height: 100%;
padding: 3rem 4rem;
@media screen {
&::after {
content: '2020 © by Inês Almeida | ines-almeida.com';
height: 4rem;
width: 100%;
position: absolute;
bottom: 0.5rem;
color: darken($color-white, 10%);
}
}
}
&__right {
position: absolute;
float: right;
width: $width-right-col;
background-color: $color-right-col;
height: 100%;
padding: 2rem 3rem;
right: 1rem;
@include shadow(0.5);
}
}

View File

@ -0,0 +1,30 @@
@mixin shadow($distance) {
-webkit-box-shadow: $distance * 1rem $distance * 2rem $distance * 3rem rgba($color-grey-dark, $distance * 0.3);
-moz-box-shadow: $distance * 1rem $distance * 2rem $distance * 3rem rgba($color-grey-dark, $distance * 0.3);
box-shadow: $distance * 1rem $distance * 2rem $distance * 3rem rgba($color-grey-dark, $distance * 0.3);
}
@mixin hz-center {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
@mixin vt-center {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
@mixin all-center {
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
}
@mixin avoid-break {
@media print {
page-break-inside: avoid;
}
}

View File

@ -0,0 +1,28 @@
body {
font-family: 'Roboto', sans-serif;
font-weight: 300;
line-height: 1.7;
font-size: 1.12rem;
color: $color-grey-dark;
}
.mainHeading {
text-transform: uppercase;
font-size: 5rem;
color: $color-secondary;
& span {
color: $color-primary;
}
}
.section__title {
font-size: 2.1rem;
color: $color-grey-dark;
}
h1,
h2 {
text-transform: uppercase;
font-family: 'Oswald', sans-serif;
}

View File

@ -0,0 +1,8 @@
.pageNotFound {
padding-top: 8rem;
@include hz-center;
&__text {
padding-top: 3rem;
}
}

View File

@ -0,0 +1,30 @@
.avatar {
width: 100%;
height: $width-right-col - 6rem;
position: relative;
overflow: hidden;
&__container {
@include hz-center;
width: 100%;
clip-path: circle(50% at 50% 56%);
height: $width-right-col - 8rem;
text-align: center;
transition: all 0.3s cubic-bezier($cubic);
&:hover {
width: 110%;
}
}
&__img {
object-fit: cover;
width: 110%;
transition: all 0.3s cubic-bezier($cubic);
@include all-center;
&:hover {
width: 105%;
}
}
}

View File

@ -0,0 +1,24 @@
.contact {
line-height: 2rem;
&__item {
position: relative;
font-size: 1rem;
& > i {
background-color: $color-primary;
color: $color-primary-text;
font-size: 1rem;
text-align: center;
border-radius: 50%;
padding-top: 0.5rem;
width: 2rem;
height: 2rem;
margin-right: 0.5rem;
margin-bottom: 0.5rem;
}
& > span {
@include vt-center;
}
}
}

View File

@ -0,0 +1,5 @@
.education {
&__item {
@include avoid-break;
}
}

View File

@ -0,0 +1,88 @@
.experience {
&__item {
display: block;
@include avoid-break;
&:not(:first-child) {
padding-top: 1.5rem;
}
}
&__header,
&__subheader {
display: block;
width: 100%;
height: 2.4rem;
}
&__job {
position: relative;
transition: transform 0.2s cubic-bezier($cubic);
&:hover {
transform: translateX(0.5rem);
}
}
&__company,
&__position {
text-align: left;
width: 70%;
float: left;
}
&__company {
color: $color-grey-dark;
}
&__position {
text-transform: uppercase;
font-size: 1.3rem;
color: $color-grey-dark;
}
&__date,
&__place {
float: right;
text-align: right;
width: 30%;
color: $color-secondary;
}
&__date {
font-weight: 400;
}
&__place {
&::before {
font-family: 'Material Icons';
color: $color-primary;
font-size: 1.4rem;
content: 'place';
display: inline-block;
padding-right: 3px;
vertical-align: middle;
font-weight: 900;
}
}
&__bullet {
list-style-position: inside;
}
&__badges {
display: block;
text-align: right;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
}
&__badge {
font-size: 0.9rem;
font-weight: 400;
display: inline-block;
background-color: $color-primary;
color: $color-primary-text;
border-radius: 1rem;
padding: 0.1rem 0.6rem;
}
}

View File

@ -0,0 +1,12 @@
.interests {
display: block;
-moz-column-count: 2;
column-count: 2;
width: 100%;
text-align: right;
@include avoid-break;
&__item:nth-child(n+4) {
text-align: left;
}
}

View File

@ -0,0 +1,15 @@
.language {
&__item {
display: table;
width: 100%;
}
&__name,
&__level {
display: table-cell;
width: 50%;
}
&__level {
text-align: right;
}
}

View File

@ -0,0 +1,30 @@
.section {
display: block;
margin-bottom: 2rem;
&__heading {
width: 100%;
overflow: hidden;
}
&__title {
position: relative;
&::after {
content: '';
position: absolute;
border-top: 1px solid;
border-bottom: 1px solid;
border-color: $color-secondary;
width: 50rem;
height: 4px;
margin-left: 1.5rem;
margin-top: 1.5rem;
transition: all 0.5s ease-in-out;
}
&:hover::after {
border-color: $color-primary;
}
}
}

View File

@ -0,0 +1,39 @@
.sideSection {
display: block;
margin-bottom: 3rem;
@include avoid-break;
&__heading {
width: 100%;
overflow: hidden;
text-align: center;
margin-bottom: 1rem;
}
&__title {
position: relative;
&::after,
&::before {
content: '';
position: absolute;
border-top: 1px solid $color-secondary;
border-bottom: 1px solid $color-secondary;
width: 10rem;
height: 4px;
margin-top: 1.1rem;
}
&::after {
margin-left: 1rem;
}
&::before {
margin-left: -11rem;
}
}
& li {
list-style: none;
}
}

View File

@ -0,0 +1,35 @@
.skills {
&__group {
& span {
font-weight: 700;
display: inline-block;
&::after{
content: ":"
}
&:hover ~ li {
background-color: $color-primary;
color: $color-white;
}
}
& li{
display: inline-block;
font-weight: 400;
transition: all 0.2s ease-in-out;
padding: 0 1px;
border-radius: 2px;
&:not(:last-child)::after{
content: ", "
}
&:hover {
background-color: $color-primary;
color: $color-white;
}
}
}
}

View File

@ -0,0 +1,29 @@
// HUGO variables
$color-primary: {{ .Site.Params.colorPrimary | default "#e3bfb8"}} !default;
$color-primary-text: {{ .Site.Params.colorPrimaryText | default "#fff"}} !default;
$color-background: {{ .Site.Params.colorPageBackground | default "#ddd" }} !default;
$color-right-col: {{ .Site.Params.colorRightColumnBackground | default "#f5f5f5" }} !default;
$color-white: {{ .Site.Params.colorLight | default "#fff"}} !default;
$color-secondary: {{ .Site.Params.colorSecondary | default "#aaa"}} !default;
$color-grey-dark: {{ .Site.Params.colorDark | default "#666"}} !default;
$pages: {{ .Site.Params.pages | default 1}} !default;
@import "abstract";
@import "functions";
@import "mixins";
@import "layout";
@import "base";
@import "typography";
@import "components/section";
@import "components/side_section";
@import "components/experience";
@import "components/education";
@import "components/contact";
@import "components/avatar";
@import "components/skills";
@import "components/languages";
@import "components/interests";
@import "components/404";

View File

@ -0,0 +1,15 @@
baseURL = "https://example.com/"
languageCode = "en-us"
defaultContentLanguage = "en"
theme = "almeida-cv"
title = "Example - CV"
[params]
colorDark = "#666"
colorLight = "#fff"
colorPageBackground = "#ddd"
colorPrimary = "#e3bfb8"
colorPrimaryText = "#fff"
colorRightColumnBackground = "#f5f5f5"
colorSecondary = "#aaa"
pages = 1

View File

@ -0,0 +1,116 @@
BasicInfo:
FirstName: Inês
LastName: Almeida
Photo: img/avatar.jpg
Contacts:
- Icon: fas fa-phone
Info: +44 123 456 789
- Icon: fas fa-envelope
Info: contact@ines-almeida.com
- Icon: fas fa-globe
Info: ines-almeida.com
- Icon: fas fa-map-marker-alt
Info: Portugal
Profile: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Experience:
- Employer: Super Cool Company
Place: Oxford, UK
Positions:
- Title: Software Engineer
Date: Jan 2020 - Present
Details:
- Arcu vitae elementum curabitur vitae nunc sed velit
- Viverra aliquet eget sit amet tellus cras adipiscing
- Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat
- Nisl tincidunt eget nullam non nisi est
- Sed viverra tellus in hac.
- Lorem ipsum dolor sit amet, consectetur adipiscing elit
Badges: ['Python', 'Django', 'OOP', 'Javascript', 'HTML', 'CSS', 'Agile']
- Title: Software Tester
Date: Mar 2019 - Jan 2020
Details:
- Nisl tincidunt eget nullam non nisi est
- Sed viverra tellus in hac.
- Lorem ipsum dolor sit amet, consectetur adipiscing elit
Badges: ['Python', 'BDD', 'Selenium', 'OOP', 'Agile']
- Employer: Another super cool company
Place: Lisbon, PT
Positions:
- Title: Flow Cytometry Resource Specialist
Date: Jan 2018 - Mar 2019
Details:
- Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat
- Nisl tincidunt eget nullam non nisi est
- Sed viverra tellus in hac.
- Lorem ipsum dolor sit amet, consectetur adipiscing elit
Badges: ['Python', 'HTML', 'CSS', 'C#/Unity']
- Employer: Institute of Neural Engineering
Place: Graz, AT
Positions:
- Title: Master's Thesis Research Intern
Date: Oct 2016 - Jun 2017
Details:
- Arcu vitae elementum curabitur vitae nunc sed velit
- Viverra aliquet eget sit amet tellus cras adipiscing
- Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat
- Nisl tincidunt eget nullam non nisi est
Badges: ['Python', 'MATLAB', 'Data Processing', 'Paradigm Design']
Education:
- Course: BSc & MSc in Biomedical Engineering and Biophysics
Place: University of Lisbon
Date: Sep 2012 - Nov 2017
Details: Specialised in data analysis
Skills:
- Family: Programming
Items:
- Python
- HTML (including Jinja)
- Javascript
- CSS
- SASS
- SQL
- C#
- Bash
- MATLAB
- Family: Frameworks
Items:
- Django
- Flask
- Hugo
- React
- Family: Developer Tools
Items:
- Git
- Docker
- Jenkins
- AWS
- Family: Misc
Items:
- Adobe Tools
- LaTeX
Languages:
- Name: Portuguese
Level: Native
- Name: English
Level: C2
- Name: Spanish
Level: B1
- Name: German
Level: B1
Diplomas:
- ISTQB Tester Certification (2019)
- English Cambridge CAE (2009)
Interests:
- Bouldering
- Cooking
- Windsurfing
- Bossa Nova
- Design
- Languages

View File

@ -0,0 +1 @@
{"Target":"style.main.min.33da6b12aa464369a4d67eff5abf33f911e1a5d1c1fb8b3959f6049be2321f60.css","MediaType":"text/css","Data":{"Integrity":"sha256-M9prEqpGQ2mk1n7/Wr8z+RHhpdHB+4s5WfYEm+IyH2A="}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

View File

@ -0,0 +1,20 @@
[profile]
other = "Profil"
[experience]
other = "Erfahrung"
[education]
other = "Bildung"
[skills]
other = "Skills"
[languages]
other = "Sprachen"
[diplomas]
other = "Zertifizierungen"
[interests]
other = "Interessen"

View File

@ -0,0 +1,20 @@
[profile]
other = "Profile"
[experience]
other = "Experience"
[education]
other = "Education"
[skills]
other = "Skills"
[languages]
other = "Languages"
[diplomas]
other = "Diplomas"
[interests]
other = "Interests"

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 569 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

View File

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
{{ partial "head.html" . }}
<body>
<div class="content">
<div class="pageNotFound">
<h1>Page not found :(</h1>
<p class="pageNotFound__text">
You're an explorer, aren't ya?<br>
But the page you are attempting to access cannot be found.<br>
Go back to the <a href="{{ "/" | relURL }}">main page</a>
</p>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
{{- partial "head.html" . -}}
<body>
{{- partial "header.html" . -}}
<div id="content">
{{- block "main" . }}{{- end }}
</div>
{{- partial "footer.html" . -}}
</body>
</html>

View File

@ -0,0 +1 @@
/* /404.html 404

View File

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="en">
{{ partial "head.html" . }}
<body>
<div class="content">
<div class="content__left">
<h1 class="mainHeading">{{.Site.Data.content.BasicInfo.FirstName}} <span>{{.Site.Data.content.BasicInfo.LastName}}</span></h1>
{{ partial "_profile.html" . }}
{{ partial "_experience.html" . }}
{{ partial "_education.html" . }}
</div>
<div class="content__right">
{{ partial "_avatar.html" . }}
{{ partial "_contacts.html" . }}
{{ partial "_skills.html" . }}
{{ partial "_languages.html" . }}
{{ partial "_diplomas.html" . }}
{{ partial "_interests.html" . }}
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,7 @@
{{ if .Site.Data.content.BasicInfo.Photo }}
<div class="sideSection avatar">
<div class="avatar__container">
<img class="avatar__img" src="{{ .Site.Data.content.BasicInfo.Photo }}" alt="photo of me">
</div>
</div>
{{ end }}

View File

@ -0,0 +1,11 @@
{{ if .Site.Data.content.BasicInfo.Contacts }}
<div class="sideSection contact">
<ul>
{{ range .Site.Data.content.BasicInfo.Contacts }}
<li class="contact__item">
<i class="{{ .Icon }}"></i><span>{{ .Info | safeHTML }}</span>
</li>
{{ end }}
</ul>
</div>
{{ end }}

View File

@ -0,0 +1,14 @@
{{ if .Site.Data.content.Diplomas }}
<div class="sideSection">
<div class="sideSection__heading">
<h2 class="sideSection__title">{{ i18n "diplomas" }}</h2>
</div>
<div class="sideSection__content">
<ul>
{{ range .Site.Data.content.Diplomas }}
<li>{{ . | safeHTML }}</li>
{{ end }}
</ul>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,19 @@
{{ if .Site.Data.content.Education }}
<div id="education" class="section">
<div class="section__heading">
<h2 class="section__title">
{{ i18n "education" }}
</h2>
</div>
<div class="section__content">
{{ range .Site.Data.content.Education }}
<div class="education__item">
<h3 class="education__title">{{ .Course | safeHTML }}</h3>
<h4 class="education__place">{{ .Place | safeHTML }}</h4>
<h4 class="education__date">{{ .Date | safeHTML }}</h4>
<div class="education__description">{{ .Details | safeHTML }}</div>
</div>
{{ end }}
</div>
</div>
{{ end }}

View File

@ -0,0 +1,43 @@
{{ if .Site.Data.content.Experience }}
<div id="experience" class="section">
<div class="section__heading">
<h2 class="section__title">{{ i18n "experience" }}</h2>
</div>
<div class="section__content">
<div class="experience">
{{ range .Site.Data.content.Experience }}
<div class="experience__item">
<div class="experience__header">
<h3 class="experience__company">
{{ .Employer | safeHTML }}
</h3>
<h3 class="experience__place">{{ .Place | safeHTML }}</h3>
</div>
{{ range .Positions }}
<div class="experience__job">
<div class="experience__subheader">
<h3 class="experience__position">
{{ .Title | safeHTML}}
</h3>
<h3 class="experience__date">{{ .Date | safeHTML }}</h3>
</div>
<ul>
{{ range .Details }}
<li class="experience__bullet">{{ . }}</li>
{{ end }}
</ul>
<div class="experience__badges">
<ul>
{{ range .Badges }}
<li class="experience__badge">{{ . }}</li>
{{ end }}
</ul>
</div>
</div>
{{ end }}
</div>
{{ end }}
</div>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,14 @@
{{ if .Site.Data.content.Interests }}
<div class="sideSection">
<div class="sideSection__heading">
<h2 class="sideSection__title">{{ i18n "interests" }}</h2>
</div>
<div class="sideSection__content">
<ul class="interests">
{{ range .Site.Data.content.Interests }}
<li class="interests__item">{{ . | safeHTML }}</li>
{{ end }}
</ul>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,17 @@
{{ if .Site.Data.content.Languages }}
<div class="sideSection">
<div class="sideSection__heading">
<h2 class="sideSection__title">{{ i18n "languages" }}</h2>
</div>
<div class="sideSection__content">
<ul class="language">
{{ range .Site.Data.content.Languages }}
<li class="language__item">
<div class="language__name">{{ .Name | safeHTML }}</div>
<div class="language__level">{{ .Level | safeHTML }}</div>
</li>
{{ end }}
</ul>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,10 @@
{{ if .Site.Data.content.Profile }}
<div id="profile" class="section">
<div class="section__heading">
<h2 class="section__title">{{ i18n "profile" }}</h2>
</div>
<div class="section__content">
<p>{{.Site.Data.content.Profile | safeHTML }}</p>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,21 @@
{{ if .Site.Data.content.Skills }}
<div class="sideSection">
<div class="sideSection__heading">
<h2 class="sideSection__title">{{ i18n "skills" }}</h2>
</div>
<div class="sideSection__content">
<ul class="skills">
<li>
{{ range .Site.Data.content.Skills }}
<ul class="skills__group">
<span>{{ .Family | safeHTML }}</span>
{{ range .Items }}
<li>{{ . | safeHTML }}</li>
{{ end }}
</ul>
{{ end }}
</li>
</ul>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,13 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ .Site.Title }}</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Oswald">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto">
<link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous"/>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
{{ $style := resources.Get "sass/main.scss" | resources.ExecuteAsTemplate "style.main.scss" . | toCSS | minify | fingerprint }}
<link rel="stylesheet" href="{{ $style.Permalink }}" integrity="{{ $style.Data.Integrity }}" >
</head>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -0,0 +1,15 @@
# theme.toml template for a Hugo theme
# See https://github.com/gohugoio/hugoThemes#themetoml for an example
name = "Almeida CV"
license = "MIT"
licenselink = "https://github.com/ineesalmeida/almeida-cv/master/LICENSE"
description = "Theme to build a customizeable printable CV with minor web responsiveness."
homepage = "https://github.com/ineesalmeida/almeida-cv/master"
tags = ["cv", "resume", "minimal", "simple"]
features = ["simple", "cv", "printable"]
min_version = "0.41.0"
[author]
name = "Inês Almeida"
homepage = "ines-almeida.com"