Compare commits

..

25 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
19 changed files with 276 additions and 97 deletions

View file

@ -26,7 +26,10 @@ modules = dict(map(read, module.glob('*.html')))
def format(item, modules):
name, content = item
return (name, re.sub('\n\s*', '', content.format(**modules)))
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()))
@ -42,4 +45,5 @@ def mk_dist(dist, item):
for item in dist_html.items():
mk_dist(dist, item)
dist.joinpath('static').symlink_to(static.resolve(strict=True), target_is_directory=True)
dist.joinpath('static')\
.symlink_to(static.resolve(strict=True), target_is_directory=True)

View file

@ -3,6 +3,8 @@ 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:
@ -17,13 +19,13 @@ for x in error.rglob('*'):
if x.is_file() or x.is_symlink(): x.unlink()
req = request.Request(
'https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html',
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]+'>"
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))
@ -31,11 +33,18 @@ nginx_head = ''
nginx_body = ''
for item in codes:
code, title, desc = item.groups()
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:
html.write(root_html.format(
code=code, title=title, desc=desc, style=root_css))
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'\

View file

@ -1,51 +1,74 @@
html {
box-sizing: border-box;
text-align: center;
}
*, *::before, *::after {
box-sizing: inherit;
@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 {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
margin: 0;
color: #000000de;
font-family: Inter, sans-serif;
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 {
display: inline-block;
padding: 0 .2em;
h1,h2,h3,h4,h5,h6 {
margin: 0;
color: var(--red-40);
margin: 24px;
font-feature-settings: 'ss01', 'ss02', 'ss03', 'cv11';
}
h1 {
color: #d50000;
font-size: 3.375rem;
line-height: 4rem;
font-weight: 300;
}
h2 {
text-align: left;
font-weight: 400;
font-size: 2.625rem;
line-height: 3.125rem;
font-weight: 300;
}
figure {
display: block;
border-top: 5px #dedede solid;
text-align: left;
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;
}
blockquote::after, blockquote::before {
font-weight: 800;
color: #dedede;
a {
text-decoration: none;
color: var(--blue-40);
}
blockquote::before {
content: "«";
a:hover {
text-decoration: underline;
filter: brightness(1.2);
}
blockquote::after {
content: "»";
a:active {
filter: brightness(1.4);
}
figcaption {
text-align: right;
a:focus {
text-decoration: none;
filter: none;
color: var(--gray-100);
background: white;
}

View file

@ -3,15 +3,20 @@
<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>
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="theme-color" content="#ffffff">
</head>
<body>
<h1>{code}</h1>
@ -20,7 +25,16 @@
<blockquote cite="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">
{desc}
</blockquote>
<figcaption><cite>HTTP/1.1 Status Code Definitions</cite></figcaption>
<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>

View file

@ -2,8 +2,17 @@
margin: 12px;
}
.biglinks > * {
vertical-align: middle;
}
.biglinks > a,
.biglinks > picture {
max-width: calc(100% - 24px);
}
.biglinks a {
width: min(20rem, 100%);
width: 20rem;
}
.biglinks a>.svg {
@ -12,3 +21,14 @@
margin-bottom: 32px;
display: block;
}
.biglinks > picture {
display: inline-block;
height: 156px;
margin: 12px;
}
.biglinks > picture > img {
height: 100%;
width: 100%;
object-fit: cover;
}

View file

@ -1,9 +1,16 @@
@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 {
color: #ffffff;
font-family: Inter var, sans-serif;
background: #161616; /* Gray 100 */
background: var(--gray-100);
}
*, *::before, *::after {
@ -11,10 +18,13 @@ html {
}
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;
@ -31,20 +41,19 @@ h1,h2,h3,h4,h5,h6 {
margin: 0;
}
h1 {
/* color: #8bc34a; */
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;
vertical-align: middle;
border: 5px solid white;
border-radius: 50%;
vertical-align: top;
}
h2 {
font-size: 2.625rem;
@ -75,7 +84,7 @@ h6 {
nav {
margin: 12px;
}
a {
a.btn {
display: inline-block;
font-size: 1rem;
@ -83,19 +92,23 @@ a {
padding: 12px 24px;
margin: 12px;
color: #f4f4f4;
background: #262626; /* Gray 90 */
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:hover {
background: #333333; /* Gray 90 Hover */
a.btn:hover {
background: var(--gray-90-hover);
}
a:active {
background: #525252; /* Gray 70 */
a.btn:active {
background: var(--gray-70);
}
a:focus {
a.btn:focus {
border: 2px solid white;
}
nav a img {
@ -114,8 +127,9 @@ ul li {
}
sup {
vertical-align: top;
line-height: 1em;
vertical-align: baseline;
font: inherit;
font-feature-settings: 'ss01', 'ss03', 'sups';
}
footer {
@ -126,9 +140,17 @@ footer {
font-size: .875rem;
line-height: 1.125rem;
font-weight: 400;
background: #262626;
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;
}

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

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

@ -3,13 +3,13 @@
height="100"
xmlns="http://www.w3.org/2000/svg">
<path fill="#8ac149" stroke="#8ac149" stroke-width="2" d="M 65 35
Q 90 40 90 57
Q 90 50 65 50"/>
<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 7 30 10
v 15
c 10 0 20 12 25 15
l -5 10
C 30 50 40 55 45 100"/>
</svg>

Before

Width:  |  Height:  |  Size: 342 B

After

Width:  |  Height:  |  Size: 346 B

View file

@ -3,13 +3,13 @@
height="100"
xmlns="http://www.w3.org/2000/svg">
<path fill="#8ac149" stroke="black" stroke-width="2" d="M 65 35
Q 90 40 90 57
Q 90 50 65 50"/>
<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 7 30 10
v 15
c 10 0 20 12 25 15
l -5 10
C 30 50 40 55 45 100"/>
</svg>

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 344 B

View file

@ -1,5 +1,5 @@
<footer>
<p>Website by edpibu - 2021</p>
<p>Inspired by IBM Carbon Design System</p>
<p>Icons and Pictograms from IBM Carbon Design System</p>
<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>

View file

@ -2,7 +2,10 @@
<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." />
<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>
@ -10,33 +13,33 @@
{h1}
<nav>
<a href="/">
<a class="btn" href="/">
edgarpierre.fr
<img class="svg" src="/static/icon/home.svg" alt="" />
</a>
<a href="mailto:contact@edgarpierre.fr">
<a class="btn" href="mailto:contact@edgarpierre.fr">
contact@edgarpierre.fr
<img class="svg" src="/static/icon/email.svg" alt="" />
</a>
<a href="https://git.edgarpierre.fr/edpibu">
<a class="btn" href="https://git.edgarpierre.fr/edpibu">
git.edgarpierre.fr/edpibu
<img class="svg" src="/static/icon/code.svg" alt="" />
</a>
<a href="https://github.com/edpiburkhart">
<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>Stages</h2>
<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>Formation</h2>
<h2 id="formation">Formation</h2>
<ul>
<li>Université de Pau et des Pays de l'Adour
- Génie Côtier
@ -67,9 +70,9 @@
- Spécialité Informatique et Sciences du Numérique
- 2016</li>
</ul>
<h2>Compétences</h2>
<h2 id="competences">Compétences</h2>
<dl>
<dt><h3>Langues</h3></dt>
<dt><h3 id="langues">Langues</h3></dt>
<dd><ul>
<li>Français (Natif)</li>
<li>Anglais
@ -77,7 +80,7 @@
<li>Allemand (Niveau B1, Deutsches Sprachdiplom 1)</li>
<li>Espagnol (Lu)</li>
</ul></dd>
<dt><h3>Informatique</h3></dt>
<dt><h3 id="competences-info">Informatique</h3></dt>
<dd><ul>
<li>Développement web (HTML, CSS, JS, Django, Symfony, node.js,
React)</li>
@ -86,13 +89,13 @@
<li>Réseau (routage)</li>
<li>Mise en page (LaTeX, Microsoft Office, LibreOffice)</li>
</dd></ul>
<dt><h3>Autres</h3></dt>
<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>Loisirs</h2>
<h2 id="loisirs">Loisirs</h2>
<ul>
<li>VTT, Randonnée</li>
<li>Ancien membre du CR@NS (association fournissant internet au campus

View file

@ -15,41 +15,55 @@
{h1}
<div class="biglinks">
<a href="/cv/">
<a class="btn" href="/cv/">
<img class="svg" src="/static/picto/rich--text--format.svg" alt="" />
Curriculum Vitae
</a>
<a href="https://git.edgarpierre.fr/edpibu">
<a class="btn" href="https://git.edgarpierre.fr/edpibu">
<img class="svg" src="/static/picto/app--developer.svg" alt="" />
Git
</a>
<a href="https://www.komoot.fr/user/383887346799">
<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 href="#">
<a class="btn" href="#">
edgarpierre.fr
<img class="svg" src="/static/icon/home.svg" alt="" />
</a>
<a href="mailto:contact@edgarpierre.fr">
<a class="btn" href="mailto:contact@edgarpierre.fr">
contact@edgarpierre.fr
<img class="svg" src="/static/icon/email.svg" alt="" />
</a>
<a href="https://git.edgarpierre.fr/edpibu">
<a class="btn" href="https://git.edgarpierre.fr/edpibu">
git.edgarpierre.fr/edpibu
<img class="svg" src="/static/icon/code.svg" alt="" />
</a>
<a href="https://github.com/edpiburkhart">
<a class="btn" href="https://github.com/edpiburkhart">
github(edpiburkhart)
<img class="svg" src="/static/icon/logo--github.svg" alt="" />
</a>
<a href="https://www.komoot.fr/user/383887346799">
<a class="btn" href="https://www.komoot.fr/user/383887346799">
komoot(edpibu)
<img class="svg" src="/static/icon/mountain.svg" alt="" />
</a>
<a href="https://www.last.fm/user/edpiburkhart">
<a class="btn" href="https://www.last.fm/user/edpiburkhart">
last.fm(edpiburkhart)
<img class="svg" src="/static/icon/music.svg" alt="" />
</a>

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>