Compare commits

...

55 commits

Author SHA1 Message Date
9997169114
Merge branch 'master' into testing 2022-01-01 14:56:07 +01:00
f5439a84c0
Fixed link styling for error pages 2022-01-01 14:55:09 +01:00
2d6467d099
Merged master 2022-01-01 14:53:34 +01:00
abe5508236
Added and fixed links in error pages 2022-01-01 14:50:44 +01:00
d764d3373d
Merge branch 'testing-jxl' 2022-01-01 14:08:30 +01:00
2c9f6cb85f
Removed alt text for decorative image 2022-01-01 11:03:48 +01:00
5770fbe7f9
Improved picture alt text 2022-01-01 10:59:41 +01:00
b469fe245c
Added id anchors to cv 2022-01-01 10:37:58 +01:00
02572c1bf2
Updated description 2022-01-01 10:27:11 +01:00
995b00fafa
Updated description 2022-01-01 10:22:57 +01:00
108f7e2968
Added JPEG-xl support, with size alternatives for picture 2022-01-01 10:12:10 +01:00
8755b3bcef
Page j'aime 2021-12-31 19:01:04 +01:00
170f57592f
Update footer to french 2021-12-31 18:31:00 +01:00
81d479e09b
Slight update to error page design 2021-12-30 17:35:04 +01:00
630b9118b9
Updated error pages with new design 2021-12-30 17:31:34 +01:00
b9446d9282
Removed useless css 2021-12-30 13:52:42 +01:00
4b30a6b6c9
Improved logo 2021-12-30 13:45:32 +01:00
b0cd3ff179
Removed logo border 2021-12-30 13:14:42 +01:00
e8ee385333
Fixed logo positioning 2021-12-30 13:13:10 +01:00
aee34ac639
Switched to css variables 2021-12-30 12:25:02 +01:00
8e7bfb96a6
Switched to font variants 2021-12-30 12:11:18 +01:00
608444f59f
Added transitions 2021-12-29 16:38:46 +01:00
04e3f982d4
Fixed whitespace behavior in generate_errors.py 2021-12-29 16:23:51 +01:00
3a3a0f42f2
Fixed whitespace behavior in generate.py 2021-12-29 16:22:02 +01:00
528ef21491
Added picture to frontpage 2021-12-29 15:51:00 +01:00
7169c31fff
Minor reformatting 2021-12-29 15:04:40 +01:00
9f0353d961
Added error pages generator 2021-12-29 14:43:06 +01:00
c279c449df
Added templating system with Python Generator 2021-12-29 12:29:36 +01:00
c6c4883fc9
Added footer 2021-12-29 11:22:11 +01:00
8e2e705a65
Added komoot to main sites 2021-12-29 10:56:31 +01:00
84a8f227bb
Changed description, added error pages 2021-12-28 17:14:01 +01:00
d80ab99c11
Changed storage structure, added license for carbon design system icons 2021-12-28 16:41:00 +01:00
af134c0be1
Added metadata 2021-12-28 16:14:43 +01:00
7b9ef419fa
Switched to cdn for font, changed CV headers for accessibility 2021-12-28 15:43:40 +01:00
ea5e9be12b
Added empty alt tags to icons 2021-12-28 15:32:51 +01:00
69cf37ef97
Fixed big git link 2021-12-28 15:31:18 +01:00
6fcc7bef33
Added icons to nav links 2021-12-28 15:30:40 +01:00
de1c65e39a
Added resume, responsive title 2021-12-28 15:16:35 +01:00
9aa37bd2d9
Reorganize links 2021-12-28 13:52:09 +01:00
70f6e5a225
Added page description 2021-12-28 12:28:07 +01:00
b3da2d324b
Added alt to img 2021-12-28 12:12:42 +01:00
7143159fe9
Updated logo stroke width 2021-12-28 12:10:12 +01:00
7f0ac3bdd5
Updated startpage with logo 2021-12-28 12:08:58 +01:00
8e7e2d6437
Changes to strok-width of logo 2021-12-28 12:02:33 +01:00
13e7995818
Added logo 2021-12-28 11:59:11 +01:00
a2e6e9c1c5
Basic page 2021-12-28 11:08:18 +01:00
9b3954912f
Start from scratch 2021-12-28 09:57:58 +01:00
abd6d61849
Final touches to photos 2021-04-11 18:30:19 +02:00
eb970f1839
Added navigation to photos 2021-04-11 18:24:27 +02:00
ecf5ab65d0
Photos template 2021-04-11 18:20:50 +02:00
4b9ae72f0a
Updated homepage for mobile 2021-04-11 17:51:23 +02:00
289e1ae711
Updated homepage for new looks (no mobile version) 2021-04-11 17:44:10 +02:00
9912f5d07d
Fixed arrows ? 2021-04-10 11:38:46 +02:00
fc15b58698
Fixed arrows ? 2021-04-10 11:36:47 +02:00
64a01ac3c4
Changed background 2021-04-10 11:26:14 +02:00
76 changed files with 1216 additions and 1048 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
dist
dist_error

View file

@ -1,114 +0,0 @@
body {
max-width: 800px;
width: 100%;
margin: auto;
position: relative;
padding: 2rem;
}
h1 {
font-size: 3rem;
text-align: right;
}
h2 {
font-size: 2rem;
margin: 0;
}
h3 {
font-size: 1.5rem;
line-height: 1.5rem;
font-weight: 800;
}
hr {
border: .1em solid black;
width: 25%;
margin: auto;
margin-top: 2rem;
margin-bottom: 1rem;
}
nav {
text-align: right;
}
li.homepage::marker {
content: '🏠';
}
li.email::marker {
content: '📧';
}
summary {
position: relative;
display: grid;
grid-template-columns: 2fr 1fr;
cursor: pointer;
}
summary::before {
content: '🡆';
position: absolute;
top: 0;
right: 100%;
font-weight: 800;
height: 1.5rem;
line-height: 1.5rem;
padding-right: .5rem;
transition: 250ms;
}
details[open] summary::before {
transform: rotate(45deg);
}
summary>:first-child {
grid-column: 1;
text-align: left;
}
summary>:last-child {
grid-column: 2;
text-align: right;
}
summary h3, summary p {
margin: 0;
}
summary strong {
font-variant: small-caps;
font-weight: normal;
}
summary>* {
align-self: center;
}
details {
margin: 1em 0;
}
details .place, details .date {
font-style: italic;
font-size: .9rem;
}
details .place {
color: #8bc34a;
}
dl.ha > dt {
font-style: italic;
}
h3.skills {
margin-bottom: 0;
}
dl.skills {
margin: 0;
}
dl.skills {
display: grid;
grid-template-columns: 1fr 4fr;
}
dl.skills > dt {
font-weight: 800;
grid-column: 1;
text-align: right;
}
dl.skills > dd {
grid-column: 2;
}
dl.skills > * {
align-self: center;
}

View file

@ -1,123 +0,0 @@
.left, .right {
position: absolute;
left: 0;
right: 0;
}
.left {
text-align: center;
top: 0;
bottom: 60%;
box-shadow: 0 0 2em black;
z-index: 100;
}
.right {
top: 40%;
bottom: 0;
background: url("../images/pic1.webp");
background-size: cover;
background-position: center;
z-index: 1;
}
.left h1, .left h2 {
position: absolute;
font-size: 3rem;
height: 1em;
line-height: 1em;
margin: 0;
width: 100%;
}
.left h2 {
top: calc( 50% - 1em );
}
.left h1 {
bottom: calc( 50% - 1em );
}
nav {
position: absolute;
top: 0;
width: 100%;
background: #ffffffde;
text-align: center;
font-size: 2em;
padding: 1em;
font-weight: 800;
}
nav > a {
padding: 1em;
}
footer {
position: absolute;
bottom: 0;
width: 100%;
background: #000000de;
color: #ffffffde;
text-align: center;
}
footer ul {
list-style: none;
padding: 1em;
}
footer li {
height: 24px;
line-height: 24px;
margin: 12px;
}
footer li span {
font-weight: 800;
margin-right: 1em;
}
footer a {
color: #dededede;
}
footer a:hover {
color: #ffffffde;
}
footer a:active {
color: #ffffffde;
}
@media screen and (min-width: 1024px), screen and (orientation: landscape) {
.left, .right {
top: 0;
bottom: 0;
}
.right {
right: 0;
left: 40%
}
.left {
right: 60%;
}
.left h1, .left h2 {
text-align: right;
padding-right: 1em;
}
}
@media screen and (hover: hover) {
footer li {
height: initial;
line-height: initial;
margin: initial;
}
}
@media screen and (min-width: 1024px) {
.left h1, .left h2 {
font-size: 4rem;
}
}
@media screen and (max-width: 700px) and (orientation: landscape) {
.left h1, .left h2 {
font-size: 2rem;
padding-right: .5em;
}
}

View file

@ -1,40 +0,0 @@
html {
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit;
}
body {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
margin: 0;
color: #000000de;
font-family: Inter, sans-serif;
}
h1, h2 {
font-family: 'IBM Plex Serif', serif;
}
h2 {
font-weight: 800;
}
h1 {
font-weight: 300;
}
a {
color: #484848de;
text-decoration: none;
transition: color 50ms;
}
a:hover {
color: #242424de;
}
a:active {
color: #121212de;
}

View file

@ -1,276 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<meta name="robots" content="index,follow" />
<title>Resume - Edgar P. Burkhart</title>
<meta name="description" content="Edgar P. Burkhart, étudiant en génie civil à l'École Normale Supérieure Paris-Saclay. contact@edgarpierre.fr" />
<link rel="preload" href="/fonts/inter/Inter-ExtraBold.woff2" as="font" crossorigin="anonymous" />
<link rel="preload" href="/fonts/inter/Inter-Regular.woff2" as="font" crossorigin="anonymous" />
<link rel="preload" href="/fonts/plex/IBMPlexSerif-Bold.woff2" as="font" crossorigin="anonymous" />
<link rel="preload" href="/fonts/plex/IBMPlexSerif-Light.woff2" as="font" crossorigin="anonymous" />
<link rel="stylesheet" type="text/css" href="/fonts/inter/inter48.css" />
<link rel="stylesheet" type="text/css" href="/fonts/plex/plex37.css" />
<link rel="stylesheet" type="text/css" href="/css/main.css" />
<link rel="stylesheet" type="text/css" href="/css/cv.css" />
<link rel="apple-touch-icon" sizes="57x57" href="/icons/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/icons/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/icons/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/icons/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/icons/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/icons/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/icons/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/icons/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/icons/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/icons/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/icons/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
</head>
<body>
<h1>Edgar P. Burkhart</h1>
<nav>
<ul>
<li class="homepage"><a href="https://edgarpierre.fr">edgarpierre.fr</a></li>
<li class="email"><a href="mailto:contact@edgarpierre.fr">contact@edgarpierre.fr</a></li>
</ul>
</nav>
<h2>Work Experience</h2>
<details>
<summary>
<div>
<h3>Be'Creative</h3>
<strong>Web Developer, Representative of the company</strong>
</div>
<div>
<p class="place">Lycée Blaise Pascal, Colmar</p>
<p class="date">2013 - 2014</p>
</div>
</summary>
<ul>
<li>Involved in the creation of the company "Be'Creative" thanks to the Junior Achievement Company Program in highschool</li>
<li>Reached the first place in the regional "mini-company" competition</li>
<li>Participated to the national event</li>
</ul>
</details>
<hr>
<h2>Education</h2>
<details>
<summary>
<div>
<h3>École Normale Supérieure Paris-Saclay</h3>
<strong>M2 FeSup (Formation à l'Enseignement Supérieur), Master in Higher Education training in Civil Engineering</strong>
</div>
<div>
<p class="place">Gif-sur-Yvette, France</p>
<p class="date">2020 - 2021</p>
</div>
</summary>
<ul>
<li>Graduate Engineering School</li>
<li><strong>Subjects:</strong> Fluid Mechanics, Structure Mechanics, Soil Mechanics, Thermal Transfers, Acoustics, Pedagogy, Materials and Structures Engineering</li>
<li>Teaching practice in higher education (Licence Pro MGB) on "Introduction to Civil Engineering"</li>
</ul>
</details>
<details>
<summary>
<div>
<h3>École Normale Supérieure Paris-Saclay</h3>
<strong>M1 MAISES (Materials and Structures), first year of a Master's Degree</strong>
</div>
<div>
<p class="place">Cachan, France</p>
<p class="date">2019 - 2020</p>
</div>
</summary>
<ul>
<li>Graduate Engineering School</li>
<li><strong>Subjects:</strong> Soil Mechanics, Fluid Mechanics, Virbations, Numerical Methods, Waves and acoustics in fluids, Structures, Materials, Thermal Transfers, English</li>
<li>Research Project on "Numerical study of instabilities using metamodels"</li>
<li>Internship on "Optimization of simplified calculation methods for early age cracking assessment"</li>
</ul>
</details>
<details>
<summary>
<div>
<h3>École Normale Supérieure Paris-Saclay</h3>
<strong>Sciences Appliquées en Physique et Ingénierie pour la Recherche et l'Enseignement (SAPHIRE), equivalent to Bachelor degree</strong>
</div>
<div>
<p class="place">Cachan, France</p>
<p class="date">2018 - 2019</p>
</div>
</summary>
<ul>
<li>Graduate Engineering School</li>
<li><strong>Subjects:</strong> Mathematics for modeling and simulation, Materials science, "Continuum media, balance equations, constitutive laws", Computer science, Numerical methods, Signal processing, Discrete and discontinuous media, Dynamic simulation and control of multibody systems, English</li>
</ul>
</details>
<details>
<summary>
<div>
<h3>Lycée Polyvalent Louis Couffignal</h3>
<strong>Classe Préparatoire aux Grandes Écoles PCSI - PSI*</strong>
</div>
<div>
<p class="place">Strasbourg, France</p>
<p class="date">2016 - 2018</p>
</div>
</summary>
<ul>
<li>Intensive two year course to prepare for the highly competitive entrance exams of the French Grandes Écoles</li>
<li><strong>Subjects:</strong> Engineering, Physics, Chemistery, Maths</li>
<li>Project on evaluating stress in a bicycle frame experimentally and numerically</li>
<li>Head of the class</li>
<li>Ranked 13th to the X-ENS entrance exam (entrance exam for École Polytechnique and École Normale Supérieure)</li>
</ul>
</details>
<details>
<summary>
<div>
<h3>Lycée Polyvalent Blaise Pascal</h3>
<strong>Baccalauréat, equivalent to A-levels, with first class honours</strong>
</div>
<div>
<p class="place">Colmar, France</p>
<p class="date">2016</p>
</div>
</summary>
<ul>
<li>Science stream, Engineering major</li>
<li><strong>Subjects:</strong> Engineering, Computer Science, Physics, Chemistery, Maths, English, German, French, Latin, History, Geography</li>
<li>Project on developing a customizable programing language along with its IDE</li>
</ul>
</details>
<hr>
<h2>Honors & Awards</h2>
<dl class="ha">
<dt>2016 - Strasbourg, France</dt>
<dd><strong>Third Place,</strong> Rallye Mathématique</dd>
<dt>2016 - Strasbourg, France</dt>
<dd><strong>Second Place,</strong> Olympiades de Mathématiques</dd>
</dl>
<hr>
<h2>Skills</h2>
<h3 class="skills">Language</h3>
<dl class="skills">
<dt>French</dt>
<dd>Mother Tongue</dd>
<dt>English</dt>
<dd>C2 Level, Cambridge English Level 3 Certificate, Grade A</dd>
<dt>Scientific English</dt>
<dd>SWAP certification</dd>
<dt>German</dt>
<dd>B1 Level, Deutsches Sprachdiplom 1</dd>
</dl>
<h3 class="skills">Computer Science</h3>
<dl class="skills">
<dt>Web dev.</dt>
<dd>Extended knowledge of languages of the Web and major frameworks</dd>
<dt>Programming</dt>
<dd>Proficiency with Python, MatLab, CAST3M, C, C++ and the Qt Framework</dd>
<dt>Network</dt>
<dd>Comprehension of the functionning of complex network infrastructures</dd>
<dt>Miscellaneous</dt>
<dd>Mastery of LaTex, Microsoft Office, and collaborative editing tools</dd>
<dt>Virtual Reality</dt>
<dd>Experience with working with VR in Civil Engineering</dd>
</dl>
<h3 class="skills">Other</h3>
<dl class="skills">
<dt>Teamwork</dt>
<dd>Worked as part of a team on numerous projects</dd>
<dt>Electronics</dt>
<dd>Experience working with micro-controller boards (Arduino, Raspberry Pi), data acquisition and HMI.</dd>
</dl>
<hr>
<h2>Extracurricular Activities</h2>
<details>
<summary>
<div>
<h3>Mountain Biking, Bikepacking</h3>
<strong>Several Multi-Day Trips</strong>
</div>
<div>
<p class="place">France, Switzerland, Italy</p>
<p class="date"></p>
</div>
</summary>
<ul>
<li>Organized multiple multi-day trips alone</li>
<li>Prepared supplies and a route for up to a 12-day excursion</li>
<li>Went through german and italian speaking places, speaking german or english when needed</li>
<li>Interacted with locals to find a better route or to get assistance</li>
</ul>
</details>
<details>
<summary>
<div>
<h3>Cachan Réseau @ Normale Sup (CR@NS)</h3>
<strong>Active Member</strong>
</div>
<div>
<p class="place">Cachan, France</p>
<p class="date">2018 - 2020</p>
</div>
</summary>
<ul>
<li>Member of the CR@NS association, which provides internet access to the entire campus of Cachan</li>
<li>Worked on the frontend of the association's website and intranet, as well as implemented some improvements to the backend</li>
<li>Learned the use of the Django framework with Python</li>
<li>Enhanced the network infrastructure by upgrading the hardware as well as installing and configuring new Wi-Fi access points</li>
</ul>
</details>
<details>
<summary>
<div>
<h3>Handball</h3>
<strong>Player & Referee</strong>
</div>
<div>
<p class="place">Munster, France</p>
<p class="date">2009 - 2016</p>
</div>
</summary>
<ul>
<li>Played handball competitively in my local team</li>
<li>Refereed official handball games at the departmental level</li>
</ul>
</details>
<details>
<summary>
<div>
<h3>Accordionist</h3>
<strong>Group of accordionists <em>Gregoria</em></strong>
</div>
<div>
<p class="place">Munster, France</p>
<p class="date">2006 - 2016</p>
</div>
</summary>
<ul>
<li>Played accordion in a local group of accorrdionists</li>
<li>Played in local events and in concerts, occasionnaly with the local orchestra</li>
<li>Several awards in regional competitions</li>
</ul>
</details>
</body>
</html>

View file

@ -1,80 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<title>401 - Unauthorized</title>
<style>
html {
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit;
}
body {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
margin: 0;
color: #000000de;
font-family: Inter, sans-serif;
}
</style>
<style>
html {
text-align: center;
}
h1,h2 {
display: inline-block;
padding: 0 .2em;
}
h1 {
color: #d50000;
}
h2 {
text-align: left;
font-weight: 400;
}
figure {
display: block;
border-top: 5px #dedede solid;
text-align: left;
}
blockquote::after, blockquote::before {
font-weight: 800;
color: #dedede;
}
blockquote::before {
content: "«";
}
blockquote::after {
content: "»";
}
figcaption {
text-align: right;
}
</style>
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="theme-color" content="#ffffff">
</head>
<body>
<h1>401</h1>
<h2>Non Autorisé</h2>
<figure>
<blockquote cite="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">
The request requires user authentication.
</blockquote>
<figcaption><cite>HTTP/1.1 Status Code Definitions</cite></figcaption>
</figure>
</body>
</html>

View file

@ -1,80 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<title>403 - Forbidden</title>
<style>
html {
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit;
}
body {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
margin: 0;
color: #000000de;
font-family: Inter, sans-serif;
}
</style>
<style>
html {
text-align: center;
}
h1,h2 {
display: inline-block;
padding: 0 .2em;
}
h1 {
color: #d50000;
}
h2 {
text-align: left;
font-weight: 400;
}
figure {
display: block;
border-top: 5px #dedede solid;
text-align: left;
}
blockquote::after, blockquote::before {
font-weight: 800;
color: #dedede;
}
blockquote::before {
content: "«";
}
blockquote::after {
content: "»";
}
figcaption {
text-align: right;
}
</style>
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="theme-color" content="#ffffff">
</head>
<body>
<h1>403</h1>
<h2>Interdit</h2>
<figure>
<blockquote cite="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">
The server understood the request, but is refusing to fulfill it. Authorization will not help and the request SHOULD NOT be repeated.
</blockquote>
<figcaption><cite>HTTP/1.1 Status Code Definitions</cite></figcaption>
</figure>
</body>
</html>

View file

@ -1,80 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<title>404 - Not Found</title>
<style>
html {
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit;
}
body {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
margin: 0;
color: #000000de;
font-family: Inter, sans-serif;
}
</style>
<style>
html {
text-align: center;
}
h1,h2 {
display: inline-block;
padding: 0 .2em;
}
h1 {
color: #d50000;
}
h2 {
text-align: left;
font-weight: 400;
}
figure {
display: block;
border-top: 5px #dedede solid;
text-align: left;
}
blockquote::after, blockquote::before {
font-weight: 800;
color: #dedede;
}
blockquote::before {
content: "«";
}
blockquote::after {
content: "»";
}
figcaption {
text-align: right;
}
</style>
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="theme-color" content="#ffffff">
</head>
<body>
<h1>404</h1>
<h2>Introuvable</h2>
<figure>
<blockquote cite="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">
The server has not found anything matching the Request-URI.
</blockquote>
<figcaption><cite>HTTP/1.1 Status Code Definitions</cite></figcaption>
</figure>
</body>
</html>

View file

@ -1,80 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<title>500 - Internal Server Error</title>
<style>
html {
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit;
}
body {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
margin: 0;
color: #000000de;
font-family: Inter, sans-serif;
}
</style>
<style>
html {
text-align: center;
}
h1,h2 {
display: inline-block;
padding: 0 .2em;
}
h1 {
color: #d50000;
}
h2 {
text-align: left;
font-weight: 400;
}
figure {
display: block;
border-top: 5px #dedede solid;
text-align: left;
}
blockquote::after, blockquote::before {
font-weight: 800;
color: #dedede;
}
blockquote::before {
content: "«";
}
blockquote::after {
content: "»";
}
figcaption {
text-align: right;
}
</style>
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="theme-color" content="#ffffff">
</head>
<body>
<h1>500</h1>
<h2>Erreur Serveur Interne</h2>
<figure>
<blockquote cite="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">
The server encountered an unexpected condition which prevented it from fulfilling the request.
</blockquote>
<figcaption><cite>HTTP/1.1 Status Code Definitions</cite></figcaption>
</figure>
</body>
</html>

View file

@ -1,80 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<title>502 - Bad Gateway</title>
<style>
html {
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit;
}
body {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
margin: 0;
color: #000000de;
font-family: Inter, sans-serif;
}
</style>
<style>
html {
text-align: center;
}
h1,h2 {
display: inline-block;
padding: 0 .2em;
}
h1 {
color: #d50000;
}
h2 {
text-align: left;
font-weight: 400;
}
figure {
display: block;
border-top: 5px #dedede solid;
text-align: left;
}
blockquote::after, blockquote::before {
font-weight: 800;
color: #dedede;
}
blockquote::before {
content: "«";
}
blockquote::after {
content: "»";
}
figcaption {
text-align: right;
}
</style>
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="theme-color" content="#ffffff">
</head>
<body>
<h1>502</h1>
<h2>Passerelle Défectueuse</h2>
<figure>
<blockquote cite="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">
The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting to fulfill the request.
</blockquote>
<figcaption><cite>HTTP/1.1 Status Code Definitions</cite></figcaption>
</figure>
</body>
</html>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,16 +0,0 @@
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("Inter-Regular.woff2") format("woff2"),
url("Inter-Regular.woff") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 800;
font-display: swap;
src: url("Inter-ExtraBold.woff2") format("woff2"),
url("Inter-ExtraBold.woff") format("woff");
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,16 +0,0 @@
@font-face {
font-family: 'IBM Plex Serif';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url("IBMPlexSerif-Bold.woff2") format("woff2"),
url("IBMPlexSerif-Bold.woff2") format("woff");
}
@font-face {
font-family: 'IBM Plex Serif';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url("IBMPlexSerif-Light.woff2") format("woff2"),
url("IBMPlexSerif-Light.woff") format("woff");
}

49
generate.py Normal file
View file

@ -0,0 +1,49 @@
from pprint import pp
from pathlib import Path
import re
src = Path('src')
views = src.joinpath('views')
template = views.joinpath('template')
module = views.joinpath('module')
static = Path('src', 'static')
dist = Path('dist')
dist.mkdir(exist_ok=True)
for x in dist.rglob('*'):
if x.is_file() or x.is_symlink(): x.unlink()
for x in dist.rglob('*/'): x.rmdir()
def read(file_path):
with file_path.open() as html_file:
return (file_path.stem, html_file.read())
templates = dict(map(read, template.glob('*.html')))
modules = dict(map(read, module.glob('*.html')))
def format(item, modules):
name, content = item
content = content.format(**modules)
content = re.sub(r'\s+', ' ', content)
content = re.sub(r'>\s<', '><', content)
return (name, content)
dist_html = dict(map(lambda item: format(item, modules), templates.items()))
def mk_dist(dist, item):
key, content = item
path = dist
if key != 'index':
path = dist.joinpath(key)
path.mkdir(exist_ok=True)
with path.joinpath('index.html').open('w') as index:
index.write(content)
for item in dist_html.items():
mk_dist(dist, item)
dist.joinpath('static')\
.symlink_to(static.resolve(strict=True), target_is_directory=True)

56
generate_errors.py Normal file
View file

@ -0,0 +1,56 @@
from pprint import pp
from pathlib import Path
from urllib import request
import re
urlroot = 'https://www.w3.org/Protocols/rfc2616'
src = Path('src')
root = src.joinpath('error')
with root.joinpath('root.html').open('r') as root_file:
root_html = root_file.read()
with root.joinpath('root.css').open('r') as root_file:
root_css = root_file.read()
error = Path('dist_error')
error.mkdir(exist_ok=True)
for x in error.rglob('*'):
if x.is_file() or x.is_symlink(): x.unlink()
req = request.Request(
f'{urlroot}/rfc2616-sec10.html',
method='GET')
with request.urlopen(req) as res:
raw = res.read().decode('utf-8')
codes = (re.finditer(r"(?s)<h3><a id='(sec10\.[0-9]\.[0-9]+)'>"
r'10\.[0-9]\.[0-9]+</a>'
r'\s*([0-9]+)\s([a-zA-Z\s]+)</h3>\s*<p>(.*?)</p>', raw))
nginx_head = ''
nginx_body = ''
for item in codes:
sec, code, title, desc = item.groups()
if int(code) < 400 or int(code) >= 600: continue
desc = re.sub(r"(<a.*?href=')(.*)('>)",
lambda x:f'{x[1]}{urlroot}/{x[2]}{x[3]}', desc)
with error.joinpath(f'{code}.html').open('w') as html:
content = root_html.format(
code=code, title=title, desc=desc, style=root_css, sec=sec)
content = re.sub(r'\s+', ' ', content)
content = re.sub(r'>\s<', '><', content)
html.write(content)
nginx_head += f'error_page {code} @error{code};\n'
nginx_body += f'location @error{code} {{\n'\
f'root {error.resolve()};\n'\
f'try_files /{code}.html /{code}.html;\n'\
'internal;}\n'
with error.joinpath(f'nginx.conf').open('w') as nginx_file:
nginx_file.write(f'{nginx_head}\n{nginx_body}\n\n'\
'proxy_intercept_errors on;')

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

View file

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 809 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

View file

@ -1,61 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<meta name="robots" content="index,follow" />
<title>Edgar P. Burkhart</title>
<meta name="description" content="Edgar P. Burkhart, étudiant en génie civil à l'École Normale Supérieure Paris-Saclay. contact@edgarpierre.fr" />
<link rel="preload" href="/fonts/inter/Inter-ExtraBold.woff2" as="font" crossorigin="anonymous" />
<link rel="preload" href="/fonts/inter/Inter-Regular.woff2" as="font" crossorigin="anonymous" />
<link rel="preload" href="/fonts/plex/IBMPlexSerif-Bold.woff2" as="font" crossorigin="anonymous" />
<link rel="preload" href="/fonts/plex/IBMPlexSerif-Light.woff2" as="font" crossorigin="anonymous" />
<link rel="preload" href="/images/pic1.webp" as="image" />
<link rel="stylesheet" type="text/css" href="/fonts/inter/inter48.css" />
<link rel="stylesheet" type="text/css" href="/fonts/plex/plex37.css" />
<link rel="stylesheet" type="text/css" href="/css/main.css" />
<link rel="stylesheet" type="text/css" href="/css/index.css" />
<link rel="apple-touch-icon" sizes="57x57" href="/icons/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/icons/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/icons/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/icons/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/icons/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/icons/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/icons/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/icons/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/icons/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/icons/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/icons/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
</head>
<body>
<div class="left">
<h2>Edgar P.</h2>
<h1>Burkhart</h1>
</div>
<div class="right">
<nav>
<a href="/cv">CV</a>
</nav>
<footer>
<ul>
<li><span>email</span><a href="mailto:contact@edgarpierre.fr">contact@edgarpierre.fr</a></li>
<li><span>komoot</span><a href="https://www.komoot.fr/user/383887346799">edpibu</a></li>
<li><span>last.fm</span><a href="https://www.last.fm/user/edpiburkhart">edpiburkhart</a></li>
<li><span>git</span><a href="https://git.edgarpierre.fr/edpibu">git.edgarpierre.fr/edpibu</a></li>
<li><span>github</span><a href="https://github.com/edpiburkhart">edpiburkhart</a></li>
<li><span>public</span><a href="https://public.edgarpierre.fr">public.edgarpierre.fr</a></li>
</ul>
</footer>
</div>
</body>
</html>

74
src/error/root.css Normal file
View file

@ -0,0 +1,74 @@
@import url('https://rsms.me/inter/inter.css');
:root {
/* Warm Gray */
--gray-100: #171414;
--gray-30: #cac5c4;
--gray-10: #f7f3f2;
--red-40: #ff8389;
--blue-40: #78a9ff;
}
body {
background: var(--gray-100);
color: var(--gray-10);
font-family: Inter var, Inter, sans-serif;
font-size: 1rem;
line-height: 1.375rem;
font-weight: 400;
margin: 24px;
font-feature-settings: 'ss01', 'ss03';
max-width: 1024px;
}
h1,h2,h3,h4,h5,h6 {
margin: 0;
color: var(--red-40);
margin: 24px;
font-feature-settings: 'ss01', 'ss02', 'ss03', 'cv11';
}
h1 {
font-size: 3.375rem;
line-height: 4rem;
font-weight: 300;
}
h2 {
font-size: 2.625rem;
line-height: 3.125rem;
font-weight: 300;
}
blockquote {
text-align: justify;
font-size: 1rem;
line-height: 1.5rem;
position: relative;
border-left: 5px solid var(--gray-30);
padding-left: 12px;
margin-left: 24px;
margin-right: 0;
}
cite {
font-style: inherit;
font-size: .875rem;
line-height: 1.125rem;
letter-spacing: .16px;
}
a {
text-decoration: none;
color: var(--blue-40);
}
a:hover {
text-decoration: underline;
filter: brightness(1.2);
}
a:active {
filter: brightness(1.4);
}
a:focus {
text-decoration: none;
filter: none;
color: var(--gray-100);
background: white;
}

40
src/error/root.html Normal file
View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<meta name="author" content="edpibu" />
<meta name="theme-color" content="#ff8389" />
<meta name="color-scheme" content="dark" />
<link rel="icon" type="image/svg+xml"
href="https://edgarpierre.fr/static/svg/logo.svg" />
<link rel="mask-icon"
href="https://edgarpierre.fr/static/svg/logo.svg" />
<title>{code} - {title}</title>
<style>
{style}
</style>
</head>
<body>
<h1>{code}</h1>
<h2>{title}</h2>
<figure>
<blockquote cite="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">
{desc}
</blockquote>
<figcaption><cite>
<a
href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#{sec}"
>HTTP/1.1 Status Code Definitions</a>
</cite></figcaption>
</figure>
<footer>
Design by edpibu,
inspired by <a href="https://www.carbondesignsystem.com/">
IBM Carbon Design System</a>
</footer>
</body>
</html>

34
src/static/css/index.css Normal file
View file

@ -0,0 +1,34 @@
.biglinks {
margin: 12px;
}
.biglinks > * {
vertical-align: middle;
}
.biglinks > a,
.biglinks > picture {
max-width: calc(100% - 24px);
}
.biglinks a {
width: 20rem;
}
.biglinks a>.svg {
height: 64px;
margin-top: 12px;
margin-bottom: 32px;
display: block;
}
.biglinks > picture {
display: inline-block;
height: 156px;
margin: 12px;
}
.biglinks > picture > img {
height: 100%;
width: 100%;
object-fit: cover;
}

156
src/static/css/main.css Normal file
View file

@ -0,0 +1,156 @@
@import url('https://rsms.me/inter/inter.css');
:root {
--gray-100: #161616;
--gray-90: #262626;
--gray-90-hover: #333333;
--gray-70: #525252;
--gray-10: #f4f4f4;
--green: #8ac159;
}
html {
background: var(--gray-100);
}
*, *::before, *::after {
box-sizing: border-box;
}
body {
font-family: Inter var, sans-serif;
color: var(--gray-10);
font-size: 1rem;
line-height: 1.375rem;
font-weight: 400;
margin: 24px;
font-feature-settings: 'ss01', 'ss03';
}
body > div {
margin: 24px;
}
body > .content {
text-align: justify;
}
.svg {
filter: invert(100%);
}
h1,h2,h3,h4,h5,h6 {
margin: 0;
}
h1 {
font-size: 3.375rem;
line-height: 4rem;
font-weight: 300;
margin: 24px;
font-feature-settings: 'ss01', 'ss02', 'ss03', 'cv11';
}
h1 strong {
font-weight: 600;
}
h1 img {
height: 4rem;
border-radius: 50%;
vertical-align: top;
}
h2 {
font-size: 2.625rem;
line-height: 3.125rem;
font-weight: 300;
}
h3 {
font-size: 2rem;
line-height: 2.5rem;
font-weight: 400;
}
h4 {
font-size: 1.75rem;
line-height: 2.25rem;
font-weight: 400;
}
h5 {
font-size: 1.25rem;
line-height: 1.75rem;
font-weight: 400;
}
h6 {
font-size: 1rem;
line-height: 1.375rem;
font-weight: 600;
}
nav {
margin: 12px;
}
a.btn {
display: inline-block;
font-size: 1rem;
line-height: 20px;
padding: 12px 24px;
margin: 12px;
color: white;
background: var(--gray-90);
text-decoration: none;
border: 2px solid transparent;
transition-property: border, background;
transition-duration: 70ms;
transition-timing-function: cubic-bezier(0.2, 0, 0.38, 0.9);
}
a.btn:hover {
background: var(--gray-90-hover);
}
a.btn:active {
background: var(--gray-70);
}
a.btn:focus {
border: 2px solid white;
}
nav a img {
height: 20px;
vertical-align: middle;
margin-left: 12px;
}
ul {
list-style-type: square;
padding-left: 24px;
margin: 12px 0;
}
ul li {
margin-bottom: .25rem;
}
sup {
vertical-align: baseline;
font: inherit;
font-feature-settings: 'ss01', 'ss03', 'sups';
}
footer {
margin: -24px;
margin-top: 24px;
padding: 24px 48px;
font-size: .875rem;
line-height: 1.125rem;
font-weight: 400;
background: var(--gray-90);
}
footer p {
margin: 0;
}
footer strong {
font-weight: 600;
font-feature-settings: 'ss01', 'ss02', 'ss03', 'cv11';
}
body > div.nav {
margin: 12px;
}

View file

@ -0,0 +1,3 @@
h1 img {
display: block;
}

201
src/static/icon/LICENSE Normal file
View file

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2015 IBM Corp.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

1
src/static/icon/code.svg Normal file
View file

@ -0,0 +1 @@
<svg id="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><defs><style>.cls-1{fill:none;}</style></defs><title>code</title><polygon points="31 16 24 23 22.59 21.59 28.17 16 22.59 10.41 24 9 31 16"/><polygon points="1 16 8 9 9.41 10.41 3.83 16 9.41 21.59 8 23 1 16"/><rect x="5.91" y="15" width="20.17" height="2" transform="translate(-3.6 27.31) rotate(-75)"/><rect id="_Transparent_Rectangle_" data-name="&lt;Transparent Rectangle&gt;" class="cls-1" width="32" height="32" transform="translate(0 32) rotate(-90)"/></svg>

After

Width:  |  Height:  |  Size: 533 B

View file

@ -0,0 +1 @@
<svg id="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><defs><style>.cls-1{fill:none;}</style></defs><title>email</title><path d="M28,6H4A2,2,0,0,0,2,8V24a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V8A2,2,0,0,0,28,6ZM25.8,8,16,14.78,6.2,8ZM4,24V8.91l11.43,7.91a1,1,0,0,0,1.14,0L28,8.91V24Z" transform="translate(0)"/><rect id="_Transparent_Rectangle_" data-name="&lt;Transparent Rectangle&gt;" class="cls-1" width="32" height="32"/></svg>

After

Width:  |  Height:  |  Size: 440 B

11
src/static/icon/home.svg Normal file
View file

@ -0,0 +1,11 @@
<svg id="icon" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<defs>
<style>
.cls-1 {
fill: none;
}
</style>
</defs>
<rect id="_Transparent_Rectangle_" data-name="&lt;Transparent Rectangle&gt;" class="cls-1" width="32" height="32"/>
<path d="M16.6123,2.2138a1.01,1.01,0,0,0-1.2427,0L1,13.4194l1.2427,1.5717L4,13.6209V26a2.0041,2.0041,0,0,0,2,2H26a2.0037,2.0037,0,0,0,2-2V13.63L29.7573,15,31,13.4282ZM18,26H14V18h4Zm2,0V18a2.0023,2.0023,0,0,0-2-2H14a2.002,2.002,0,0,0-2,2v8H6V12.0615l10-7.79,10,7.8005V26Z" transform="translate(0 0)"/>
</svg>

After

Width:  |  Height:  |  Size: 610 B

View file

@ -0,0 +1 @@
<svg id="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><defs><style>.cls-1{fill-rule:evenodd;}.cls-2{fill:none;}</style></defs><title>logo--github</title><path class="cls-1" d="M16,2a14,14,0,0,0-4.43,27.28c.7.13,1-.3,1-.67s0-1.21,0-2.38c-3.89.84-4.71-1.88-4.71-1.88A3.71,3.71,0,0,0,6.24,22.3c-1.27-.86.1-.85.1-.85A2.94,2.94,0,0,1,8.48,22.9a3,3,0,0,0,4.08,1.16,2.93,2.93,0,0,1,.88-1.87c-3.1-.36-6.37-1.56-6.37-6.92a5.4,5.4,0,0,1,1.44-3.76,5,5,0,0,1,.14-3.7s1.17-.38,3.85,1.43a13.3,13.3,0,0,1,7,0c2.67-1.81,3.84-1.43,3.84-1.43a5,5,0,0,1,.14,3.7,5.4,5.4,0,0,1,1.44,3.76c0,5.38-3.27,6.56-6.39,6.91a3.33,3.33,0,0,1,.95,2.59c0,1.87,0,3.38,0,3.84s.25.81,1,.67A14,14,0,0,0,16,2Z"/><rect id="_Transparent_Rectangle_" data-name="&lt;Transparent Rectangle&gt;" class="cls-2" width="32" height="32"/></svg>

After

Width:  |  Height:  |  Size: 809 B

View file

@ -0,0 +1,12 @@
<svg id="icon" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<defs>
<style>
.cls-1 {
fill: none;
}
</style>
</defs>
<title>mountain</title>
<path d="M27.6343,26,17.7888,5.1055a2,2,0,0,0-3.5879.021L4.3657,26H2v2H30V26ZM15.99,5.979,20.9473,16.5,19,17.7979l-3-2-3,2-1.9551-1.3033ZM10.1846,18.3247,13,20.2021l3-2,3,2,2.8091-1.873L25.4233,26H6.5752Z"/>
<rect id="_Transparent_Rectangle_" data-name="&lt;Transparent Rectangle&gt;" class="cls-1" width="32" height="32"/>
</svg>

After

Width:  |  Height:  |  Size: 542 B

View file

@ -0,0 +1 @@
<svg id="icon" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><defs><style>.cls-1{fill:none;}</style></defs><title>music</title><path d="M25,4H10A2.002,2.002,0,0,0,8,6V20.5563A3.9551,3.9551,0,0,0,6,20a4,4,0,1,0,4,4V12H25v8.5562A3.9545,3.9545,0,0,0,23,20a4,4,0,1,0,4,4V6A2.0023,2.0023,0,0,0,25,4ZM6,26a2,2,0,1,1,2-2A2.0023,2.0023,0,0,1,6,26Zm17,0a2,2,0,1,1,2-2A2.0027,2.0027,0,0,1,23,26ZM10,6H25v4H10Z"/><rect id="_Transparent_Rectangle_" data-name="&lt;Transparent Rectangle&gt;" class="cls-1" width="32" height="32"/></svg>

After

Width:  |  Height:  |  Size: 555 B

BIN
src/static/pic/pic.jxl Normal file

Binary file not shown.

BIN
src/static/pic/pic.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
src/static/pic/picx2.jxl Normal file

Binary file not shown.

BIN
src/static/pic/picx2.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
src/static/pic/picx4.jxl Normal file

Binary file not shown.

BIN
src/static/pic/picx4.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

201
src/static/picto/LICENSE Normal file
View file

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2015 IBM Corp.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<path id="app--developer_1_" d="M3.254,9.254L2.746,8.746L3.991,7.5L2.746,6.254l0.509-0.509L5.009,7.5L3.254,9.254z M3,2
C2.724,2,2.5,2.224,2.5,2.5S2.724,3,3,3s0.5-0.224,0.5-0.5S3.276,2,3,2z M5.5,2.5C5.5,2.776,5.276,3,5,3S4.5,2.776,4.5,2.5
S4.724,2,5,2S5.5,2.224,5.5,2.5z M7.5,2.5C7.5,2.776,7.276,3,7,3S6.5,2.776,6.5,2.5S6.724,2,7,2S7.5,2.224,7.5,2.5z M18.5,6.5
C18.5,6.776,18.276,7,18,7s-0.5-0.224-0.5-0.5S17.724,6,18,6S18.5,6.224,18.5,6.5z M20.5,6.5C20.5,6.776,20.276,7,20,7
s-0.5-0.224-0.5-0.5S19.724,6,20,6S20.5,6.224,20.5,6.5z M22.5,6.5C22.5,6.776,22.276,7,22,7s-0.5-0.224-0.5-0.5S21.724,6,22,6
S22.5,6.224,22.5,6.5z M5.5,24.5C5.5,24.776,5.276,25,5,25s-0.5-0.224-0.5-0.5S4.724,24,5,24S5.5,24.224,5.5,24.5z M13,14.36H1
c-0.199,0-0.36-0.161-0.36-0.36V1c0-0.199,0.161-0.36,0.36-0.36h12c0.199,0,0.36,0.161,0.36,0.36v13
C13.36,14.199,13.199,14.36,13,14.36z M12.64,4.36H1.36v9.28h11.28C12.64,13.64,12.64,4.36,12.64,4.36z M12.64,1.36H1.36v2.281
h11.28C12.64,3.641,12.64,1.36,12.64,1.36z M31.36,5v17c0,0.199-0.161,0.36-0.36,0.36H19.691c-0.301,0.471-0.69,0.885-1.152,1.215
c2.875,1.05,4.819,3.778,4.819,6.902l0.002,0.521L22.639,31l-0.002-0.522c0-3.078-2.09-5.729-5.083-6.45
c-0.15-0.035-0.26-0.163-0.274-0.316s0.07-0.299,0.211-0.361c1.315-0.592,2.165-1.9,2.165-3.334c0-2.017-1.64-3.657-3.656-3.657
c-2.018,0-3.66,1.64-3.66,3.657c0,1.434,0.85,2.742,2.166,3.334c0.141,0.062,0.225,0.208,0.211,0.361s-0.125,0.281-0.274,0.316
c-2.993,0.721-5.084,3.372-5.084,6.449l0.001,0.521L8.64,31l-0.001-0.522c0-3.125,1.943-5.854,4.819-6.903
c-1.138-0.812-1.838-2.134-1.838-3.559c0-2.292,1.772-4.178,4.02-4.362V5c0-0.199,0.161-0.36,0.36-0.36h15
C31.199,4.64,31.36,4.801,31.36,5z M30.64,8.36H16.36v7.295c2.246,0.184,4.017,2.07,4.017,4.362c0,0.566-0.11,1.115-0.315,1.623
H30.64V8.36z M30.64,5.36H16.36v2.28h14.28V5.36z M22,11.64h-4v0.72h4V11.64z M23.64,17.5c0-1.577,1.283-2.86,2.86-2.86
s2.86,1.283,2.86,2.86s-1.283,2.86-2.86,2.86S23.64,19.077,23.64,17.5z M28.242,16.266l-1.383,1.383l-0.004,1.955
c1.01-0.171,1.784-1.046,1.784-2.104C28.64,17.04,28.49,16.615,28.242,16.266z M24.36,17.5c0,1.055,0.769,1.928,1.774,2.103
l0.006-2.253l1.592-1.593c-0.349-0.248-0.773-0.397-1.233-0.397C25.32,15.36,24.36,16.32,24.36,17.5z M8,9.64H5v0.72h3V9.64z
M3.5,21.36h3v-0.72h-3V21.36z M3.5,19.36h3v-0.72h-3V19.36z M22,13.64h-4v0.72h4V13.64z M29,11.64h-4v0.72h4V11.64z M29,9.64h-4
v0.72h4V9.64z M22,9.64h-4v0.72h4V9.64z M8.36,17.584v7.832c0,0.521-0.423,0.944-0.944,0.944H2.584
c-0.521,0-0.944-0.424-0.944-0.944v-7.832c0-0.521,0.423-0.944,0.944-0.944h4.832C7.937,16.64,8.36,17.063,8.36,17.584z M7.64,23.36
H2.36v2.056c0,0.123,0.101,0.224,0.224,0.224h4.832c0.124,0,0.224-0.101,0.224-0.224C7.64,25.416,7.64,23.36,7.64,23.36z
M7.64,17.584c0-0.123-0.101-0.224-0.224-0.224H2.584c-0.124,0-0.224,0.101-0.224,0.224v5.056h5.28
C7.64,22.64,7.64,17.584,7.64,17.584z"/>
<rect id="_Transparent_Rectangle" style="fill:none;" width="32" height="32"/>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

17
src/static/picto/love.svg Normal file
View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<g id="love">
<path id="love_1_" d="M16.032,29.247c-0.092,0-0.185-0.035-0.255-0.105L3.008,16.373c-1.507-1.507-2.337-3.506-2.337-5.629
c0-2.139,0.83-4.147,2.337-5.655c1.506-1.506,3.508-2.335,5.639-2.337c0,0,0.001,0,0.002,0c2.132,0,4.136,0.83,5.643,2.337
l1.74,1.74l1.74-1.74c1.507-1.507,3.511-2.337,5.642-2.337c0.003,0,0.005,0,0.008,0c2.128,0.002,4.129,0.832,5.635,2.337
c1.507,1.508,2.337,3.511,2.337,5.642s-0.83,4.134-2.337,5.642L16.287,29.142C16.216,29.212,16.124,29.247,16.032,29.247z
M8.649,3.473c0,0-0.001,0-0.002,0C6.709,3.474,4.888,4.229,3.518,5.599C2.147,6.97,1.392,8.797,1.392,10.744
c0,1.931,0.755,3.749,2.126,5.119l0,0l12.514,12.514l12.514-12.514c1.371-1.371,2.126-3.193,2.126-5.132s-0.755-3.761-2.126-5.132
c-1.37-1.369-3.19-2.124-5.125-2.126c-0.003,0-0.006,0-0.008,0c-1.938,0-3.761,0.754-5.132,2.126l-1.995,1.995
c-0.141,0.141-0.369,0.141-0.51,0l-1.995-1.995C12.412,4.228,10.588,3.473,8.649,3.473z"/>
</g>
<g id="Layer_1">
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<path id="rich-text-format_1_" d="M31,31.36H7c-0.199,0-0.36-0.161-0.36-0.36v-7.64H1c-0.199,0-0.36-0.161-0.36-0.36V8
c0-0.199,0.161-0.36,0.36-0.36h5.64V1c0-0.199,0.161-0.36,0.36-0.36h18c0.096,0,0.188,0.038,0.255,0.105l6,6
C31.322,6.813,31.36,6.904,31.36,7v24C31.36,31.199,31.199,31.36,31,31.36z M7.36,30.64h23.28V7.36H25
c-0.199,0-0.36-0.161-0.36-0.36V1.36H7.36v6.28H16c0.199,0,0.36,0.161,0.36,0.36v2.641H27v0.72H16.36v3.28H27v0.72H16.36v3.279H27
v0.721H16.36v3.279H27v0.721H7.36V30.64z M1.36,22.64h14.28v-2.49L12,16.51l-1.746,1.745c-0.141,0.141-0.368,0.141-0.509,0L5,13.51
l-3.64,3.64C1.36,17.15,1.36,22.64,1.36,22.64z M12,15.641c0.092,0,0.184,0.035,0.254,0.105l3.386,3.385V8.36H1.36v7.771
l3.386-3.385c0.141-0.141,0.368-0.141,0.509,0L10,17.491l1.746-1.745C11.816,15.676,11.908,15.641,12,15.641z M25.36,6.64h4.771
L25.36,1.869V6.64z M23,27.36H11v-0.72h12V27.36z M10.5,13.36c-1.025,0-1.86-0.834-1.86-1.86s0.834-1.86,1.86-1.86
s1.86,0.834,1.86,1.86S11.525,13.36,10.5,13.36z M10.5,10.36c-0.628,0-1.14,0.512-1.14,1.14s0.512,1.14,1.14,1.14
s1.14-0.512,1.14-1.14S11.128,10.36,10.5,10.36z"/>
<rect id="_Transparent_Rectangle" style="fill:none;" width="32" height="32"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<path id="summit_1_" d="M27.745,31.255l-4.779-4.779l-3.75,2.812c-0.149,0.11-0.359,0.091-0.483-0.047l-8.719-9.688L1.279,30.228
l-0.558-0.455l9-11c0.067-0.082,0.166-0.13,0.271-0.133c0.073-0.002,0.205,0.042,0.276,0.119l4.481,4.979l6.149-7.516l-7.883-9.635
L2.291,21.213L1.71,20.787L12.64,5.882V1c0-0.199,0.161-0.36,0.36-0.36h4c0.199,0,0.36,0.161,0.36,0.36v3
c0,0.199-0.161,0.36-0.36,0.36h-3.64v1.512l8.003,9.782l2.358-2.882c0.066-0.082,0.166-0.13,0.272-0.132
c0.094,0.004,0.207,0.043,0.276,0.123l7,8l-0.541,0.475l-6.721-7.68L15.235,24.28l3.812,4.235l3.736-2.803
c0.143-0.106,0.343-0.093,0.471,0.033l5,5L27.745,31.255z M13.36,3.64h3.28V1.36h-3.28V3.64z M27.689,8.235h-4.601
c-0.799,0-1.449-0.653-1.449-1.456c0-0.94,0.878-1.716,1.72-1.554c0.282-0.929,1.14-1.584,2.15-1.584c0.827,0,1.566,0.44,1.96,1.143
C28.416,4.66,29.36,5.53,29.36,6.566C29.36,7.486,28.61,8.235,27.689,8.235z M23.089,5.919c-0.41,0-0.729,0.462-0.729,0.86
c0,0.406,0.326,0.736,0.729,0.736h4.601c0.524,0,0.95-0.426,0.95-0.95c0-0.563-0.453-1.076-0.95-1.076
c-0.104,0-0.206,0.017-0.305,0.051c-0.181,0.064-0.382-0.031-0.451-0.21c-0.23-0.589-0.789-0.97-1.424-0.97
c-0.792,0-1.446,0.592-1.521,1.377c-0.012,0.122-0.084,0.229-0.192,0.285c-0.109,0.057-0.239,0.053-0.345-0.006
C23.34,5.952,23.218,5.919,23.089,5.919z"/>
<rect id="_Transparent_Rectangle" style="fill:none;" width="32" height="32"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -0,0 +1,15 @@
<svg version="1.1"
width="100"
height="100"
xmlns="http://www.w3.org/2000/svg">
<path fill="#8ac149" stroke="#8ac149" stroke-width="2" d="M 60 40
Q 80 45 75 55
Q 75 50 55 50"/>
<path fill="white" stroke="white" stroke-width="2" d="M 10,100
v -50
a 25 25 0 0 1 25 -25
c 10 0 20 12 25 15
l -5 10
C 30 50 40 55 45 100"/>
</svg>

After

Width:  |  Height:  |  Size: 346 B

15
src/static/svg/logo.svg Normal file
View file

@ -0,0 +1,15 @@
<svg version="1.1"
width="100"
height="100"
xmlns="http://www.w3.org/2000/svg">
<path fill="#8ac149" stroke="black" stroke-width="2" d="M 60 40
Q 80 45 75 55
Q 75 50 55 50"/>
<path fill="white" stroke="black" stroke-width="2" d="M 10,100
v -50
a 25 25 0 0 1 25 -25
c 10 0 20 12 25 15
l -5 10
C 30 50 40 55 45 100"/>
</svg>

After

Width:  |  Height:  |  Size: 344 B

View file

@ -0,0 +1,5 @@
<footer>
<p>Site par <strong>edpibu</strong> - 2021</p>
<p>Inspiré par IBM Carbon Design System</p>
<p>Icônes et pictogrammes par IBM Carbon Design System</p>
</footer>

6
src/views/module/h1.html Normal file
View file

@ -0,0 +1,6 @@
<h1>
<img src="/static/svg/logo-inv.svg"
alt="Logo : goéland avec un bec vert" />
Edgar P.
<strong>Burkhart</strong>
</h1>

View file

@ -0,0 +1,13 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<meta name="author" content="edpibu" />
<meta name="theme-color" content="#8ac149" />
<meta name="color-scheme" content="dark light" />
<link rel="icon" type="image/svg+xml" href="/static/svg/logo.svg" />
<link rel="mask-icon" href="/static/svg/logo.svg" />
<link rel="stylesheet" type="text/css" href="/static/css/main.css" />
<link rel="stylesheet" type="text/css" href="/static/css/mobile.css"
media="screen and (max-width: 42rem)" />

110
src/views/template/cv.html Normal file
View file

@ -0,0 +1,110 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<title>CV - Edgar P. Burkhart</title>
<meta name="description"
content="Edgar P. Burkhart, étudiant en génie côtier à l'UPPA.
Normalien-élève de l'ENS Paris-Saclay.
Agrégé de Sciences Industrielles de l'Ingénieur." />
{meta}
</head>
<body>
{h1}
<nav>
<a class="btn" href="/">
edgarpierre.fr
<img class="svg" src="/static/icon/home.svg" alt="" />
</a>
<a class="btn" href="mailto:contact@edgarpierre.fr">
contact@edgarpierre.fr
<img class="svg" src="/static/icon/email.svg" alt="" />
</a>
<a class="btn" href="https://git.edgarpierre.fr/edpibu">
git.edgarpierre.fr/edpibu
<img class="svg" src="/static/icon/code.svg" alt="" />
</a>
<a class="btn" href="https://github.com/edpiburkhart">
github(edpiburkhart)
<img class="svg" src="/static/icon/logo--github.svg" alt="" />
</a>
</nav>
<div class="content">
<h2 id="stages">Stages</h2>
<ul>
<li>Optimization of simplified calculation methods for early age
cracking assessement
- Norwegian University of Science and Technology, ENS Paris-Saclay
- 2020</li>
</ul>
<h2 id="formation">Formation</h2>
<ul>
<li>Université de Pau et des Pays de l'Adour
- Génie Côtier
- M2 Computations in Coastal Engineering (CCE)
- 2022</li>
<li>Agrégation de Sciences Industrielles de l'Ingénieur
- Option Ingénierie des Constructions
- Classé 1<sup>er</sup>
- 2021</li>
<li>École Normale Supérieure Paris-Saclay
- Génie Civil
- M2 Formation à l'Enseignement Supérieur en Génie Civil
- 2021</li>
<li>École Normale Supérieure Paris-Saclay
- Génie Civil
- M1 Matériaux et Structures (MAISES)
- 2020</li>
<li>École Normale Supérieure Paris-Saclay
- Sciences Appliquées en Physique et Ingénierie pour la Recherche
et l'Enseignement (SAPHIRE) - Équivalent L3
- 2019</li>
<li>Lycée Polyvalent Louis Couffignal
- CPGE PCSI-PSI*
- Classé 13<sup>e</sup> au concours X-ENS
- 2018</li>
<li>Lycée Polyvalent Blaise Pascal
- Baccalauréat Scientifique
- Spécialité Informatique et Sciences du Numérique
- 2016</li>
</ul>
<h2 id="competences">Compétences</h2>
<dl>
<dt><h3 id="langues">Langues</h3></dt>
<dd><ul>
<li>Français (Natif)</li>
<li>Anglais
(Niveau C2, Cambridge English Level 3 Certificate, Grade A)</li>
<li>Allemand (Niveau B1, Deutsches Sprachdiplom 1)</li>
<li>Espagnol (Lu)</li>
</ul></dd>
<dt><h3 id="competences-info">Informatique</h3></dt>
<dd><ul>
<li>Développement web (HTML, CSS, JS, Django, Symfony, node.js,
React)</li>
<li>Programmation (JavaScript, Python, C++ [Qt], Matlab/Octave,
CAST3M)</li>
<li>Réseau (routage)</li>
<li>Mise en page (LaTeX, Microsoft Office, LibreOffice)</li>
</dd></ul>
<dt><h3 id="competences-autres">Autres</h3></dt>
<dd><ul>
<li>Travail d'équipe</li>
<li>Électronique (Raspberry Pi, Arduino, brasure, conception de PCB)
</ul>
</dl>
<h2 id="loisirs">Loisirs</h2>
<ul>
<li>VTT, Randonnée</li>
<li>Ancien membre du CR@NS (association fournissant internet au campus
de Cachan), 2018-2020</li>
<li>Handball (joueur, arbitre, 2009-2016)</li>
<li>Accordéon (membre d'un groupe d'accordéonistes, 2006-2016)</li>
</ul>
</div>
{footer}
</body>
</html>

View file

@ -0,0 +1,74 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Edgar P. Burkhart</title>
<meta name="description"
content="Edgar P. Burkhart, étudiant en génie côtier à l'UPPA.
Normalien-élève de l'ENS Paris-Saclay.
Agrégé de Sciences Industrielles de l'Ingénieur." />
{meta}
<link rel="stylesheet" type="text/css" href="/static/css/index.css" />
</head>
<body>
{h1}
<div class="biglinks">
<a class="btn" href="/cv/">
<img class="svg" src="/static/picto/rich--text--format.svg" alt="" />
Curriculum Vitae
</a>
<a class="btn" href="https://git.edgarpierre.fr/edpibu">
<img class="svg" src="/static/picto/app--developer.svg" alt="" />
Git
</a>
<a class="btn" href="https://www.komoot.fr/user/383887346799">
<img class="svg" src="/static/picto/summit.svg" alt="" />
Komoot
</a>
<picture>
<source type="image/jxl"
srcset="/static/pic/pic.jxl,
/static/pic/picx2.jxl 2x,
/static/pic/picx4.jxl 4x" />
<img alt=""
src="/static/pic/pic.webp"
srcset="/static/pic/picx2.webp 2x,
/static/pic/picx4.webp 4x" />
</picture>
<a class="btn" href="/jaime/">
<img class="svg" src="/static/picto/love.svg" alt="" />
Ce que j'aime
</a>
</div>
<nav>
<a class="btn" href="#">
edgarpierre.fr
<img class="svg" src="/static/icon/home.svg" alt="" />
</a>
<a class="btn" href="mailto:contact@edgarpierre.fr">
contact@edgarpierre.fr
<img class="svg" src="/static/icon/email.svg" alt="" />
</a>
<a class="btn" href="https://git.edgarpierre.fr/edpibu">
git.edgarpierre.fr/edpibu
<img class="svg" src="/static/icon/code.svg" alt="" />
</a>
<a class="btn" href="https://github.com/edpiburkhart">
github(edpiburkhart)
<img class="svg" src="/static/icon/logo--github.svg" alt="" />
</a>
<a class="btn" href="https://www.komoot.fr/user/383887346799">
komoot(edpibu)
<img class="svg" src="/static/icon/mountain.svg" alt="" />
</a>
<a class="btn" href="https://www.last.fm/user/edpiburkhart">
last.fm(edpiburkhart)
<img class="svg" src="/static/icon/music.svg" alt="" />
</a>
</nav>
{footer}
</body>
</html>

View file

@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Edgar P. Burkhart</title>
<meta name="description"
content="Les choses que j'apprécie - Edgar P. Burkhart." />
{meta}
</head>
<body>
<h1>
<img src="/static/svg/logo-inv.svg"
alt="Logo : goéland avec un bec vert" />
J'aime par
<strong>edpibu</strong>
</h1>
<nav>
<a class="btn" href="/">
edgarpierre.fr
<img class="svg" src="/static/icon/home.svg" alt="" />
</a>
</nav>
<div class="content">
</div>
<div class="content nav">
<a class="btn" href="https://www.carbondesignsystem.com/">
IBM Carbon Design System</a>
<a class="btn" href="https://rsms.me/inter/">
Inter typeface</a>
<a class="btn" href="https://github.com/jech/galene">
Galene</a>
<a class="btn" href="https://github.com/photoview/photoview">
Photoview</a>
<a class="btn" href="https://komoot.fr/">
Komoot</a>
<a class="btn" href="https://deezer.fr/">
Deezer</a>
<a class="btn"
href="https://www.garmin.com/fr-FR/p/596828/pn/010-01913-01">
Garmin Edge 130</a>
<a class="btn" href="https://archiv.cube.eu/fr/2017/856400">
Cube Stereo</a>
<a class="btn" href="https://www.rammstein.de/">
Rammstein</a>
<a class="btn" href="https://stageverse.muse.mu/">
Muse</a>
</div>
{footer}
</body>
</html>