diff --git a/src/routes/index.rs b/src/routes/index.rs index 940ddb0..b9f6bb2 100644 --- a/src/routes/index.rs +++ b/src/routes/index.rs @@ -8,12 +8,10 @@ pub async fn page() -> impl Responder { #[derive(Template)] #[template(path = "../templates/index.html")] -struct IndexTemplate<'a> { - name: &'a str, -} +struct IndexTemplate {} pub fn get_index() -> std::string::String { - let index = IndexTemplate { name: "world" }; + let index = IndexTemplate {}; index.render().unwrap() } diff --git a/static/css/fonts/Luciole-Bold-Italic.ttf b/static/css/fonts/Luciole-Bold-Italic.ttf new file mode 100644 index 0000000..7926c7b Binary files /dev/null and b/static/css/fonts/Luciole-Bold-Italic.ttf differ diff --git a/static/css/fonts/Luciole-Bold.ttf b/static/css/fonts/Luciole-Bold.ttf new file mode 100644 index 0000000..2a0f075 Binary files /dev/null and b/static/css/fonts/Luciole-Bold.ttf differ diff --git a/static/css/fonts/Luciole-Regular-Italic.ttf b/static/css/fonts/Luciole-Regular-Italic.ttf new file mode 100644 index 0000000..4f95be0 Binary files /dev/null and b/static/css/fonts/Luciole-Regular-Italic.ttf differ diff --git a/static/css/fonts/Luciole-Regular.ttf b/static/css/fonts/Luciole-Regular.ttf new file mode 100644 index 0000000..2055e8a Binary files /dev/null and b/static/css/fonts/Luciole-Regular.ttf differ diff --git a/static/css/fonts/Read Me.txt b/static/css/fonts/Read Me.txt new file mode 100644 index 0000000..d829bec --- /dev/null +++ b/static/css/fonts/Read Me.txt @@ -0,0 +1,14 @@ + + + +Ces fontes sont distribuées gratuitement sous Licence publique Creative Commons Attribution 4.0 International : +https://creativecommons.org/licenses/by/4.0/legalcode.fr + + + +These fonts are freely available under Creative Commons Attribution 4.0 International Public License: +https://creativecommons.org/licenses/by/4.0/legalcode + + + +Luciole © Laurent Bourcellier & Jonathan Perez diff --git a/static/css/style.css b/static/css/style.css new file mode 100644 index 0000000..caf1d2e --- /dev/null +++ b/static/css/style.css @@ -0,0 +1,248 @@ +/* Title font */ +@import url("https://fonts.googleapis.com/css2?family=Overpass:wght@200&display=swap"); + +/* Normal font */ +@font-face { + font-family: "Luciole"; + font-style: normal; + font-weight: normal; + src: url(/css/fonts/Luciole-Regular.ttf); +} + +/* Italic font */ +@font-face { + font-family: "Luciole"; + font-style: italic; + font-weight: normal; + src: url(/css/fonts/Luciole-Regular-Italic.ttf); +} + +/* Bold fond */ +@font-face { + font-family: "Luciole"; + font-style: normal; + font-weight: bold; + src: url(/css/fonts/Luciole-Bold.ttf); +} + +/* Bold italic font */ +@font-face { + font-family: "Luciole"; + font-style: italic; + font-weight: bold; + src: url(/css/fonts/Luciole-Bold-Italic.ttf); +} + +/* Page bottom */ +footer { + position: absolute; + bottom: 0; + margin: -8px; + width: 100%; + height: 2.5rem; +} + +/* Regular tags */ +html { + position: relative; + min-height: 100vh; + height: 100%; + scroll-behavior: smooth; +} + +body { + position: relative; + padding-bottom: 3em; + min-height: 90%; + background-color: rgb(24, 24, 24); +} + +p, +h1, +h2, +h3, +li, +a { + font-family: "Luciole", sans-serif; +} + +::selection { + color: rgb(255, 255, 255); + background: rgba(124, 75, 173, 0.486); +} + +/* Frames */ +h1.subtitle { + text-decoration: none; + color: rgb(28, 118, 236); +} + +h1#title { + text-align: center; + color: rgb(28, 236, 174); +} + +h2.subtitle, +h2.subtitle a { + color: rgb(28, 118, 236) !important; +} + +h3.subsubtitle, +#content h3.subsubtitle a { + text-align: left; + color: rgb(149, 87, 201); +} + +#content h3.subsubtitle a:hover { + color: rgb(0, 181, 236); + transition: color 0.1s; +} + +div#content { + margin-left: auto; + margin-right: auto; + margin-top: 2%; + padding: 0.9% 0.9% 0.9% 0.9%; + width: 42%; + border-radius: 6px; + border: 1px solid rgb(170, 170, 170); + text-align: center; +} + +@media only screen and (max-width: 850px) { + /* Mobile display */ + div#content { + width: 90%; + } +} + +#content a, +#content a:visited, +#content ul { + text-decoration: none; + color: rgb(201, 201, 201); + text-align: center; +} + +#content p { + text-decoration: none; + color: rgb(201, 201, 201); + text-align: center; + padding: 0.7em; +} + +#content a:hover { + color: rgb(0, 181, 236); + transition: color 0.1s; +} + +/* https://stackoverflow.com/a/40244401/15436737 */ + +#content a { + position: relative; + text-decoration: none; + display: inline-block; +} + +#content a:after { + display: block; + content: ""; + border-bottom: solid 3px; + transform: scaleX(0); + transition: transform 250ms ease-in-out; + transform-origin: 100% 50%; +} + +#content a:hover:after { + transform: scaleX(1); + transform-origin: 0 50%; +} + +/* ------------------------------------------- */ + +div.subcontent { + margin-left: auto; + margin-right: auto; + margin-top: 5%; + padding: 1.2% 1.2% 1.2% 1.2%; + width: 78%; + border-radius: 6px; + border: 1px solid rgb(170, 170, 170); + text-align: center; +} + +#listecontent li { + margin-bottom: 0.5em; +} + +/* Index */ +.index { + height: 100%; + padding: 0; + margin: 0; +} + +.divIndex { + width: 50%; + height: 50%; + float: left; +} + +button.buttonIndex { + width: 100%; + height: 100%; + border: none; + opacity: 0.6; + transition: all 0.1s; + cursor: pointer; +} + +span.buttonIndex { + font-family: "Overpass", sans-serif; + font-size: 500%; + cursor: pointer; + display: inline-block; + position: relative; + transition: 0.5s; +} + +.buttonIndex:hover, +span.buttonIndex:after { + opacity: 1; + padding-right: 2%; +} + +#buttonIndexTL { + background-color: rgb(0, 255, 255); +} + +#buttonIndexTR { + background-color: rgb(21, 255, 0); +} + +#buttonIndexBL { + background-color: rgb(187, 255, 0); +} + +#buttonIndexBR { + background-color: rgb(208, 88, 255); +} + +/* Back links going to the index */ +footer.backToIndexPage { + text-align: center; +} + +footer.backToIndexPage a { + color: rgb(114, 180, 76); + text-decoration: none; +} + +footer.backToIndexPage a:hover { + color: rgb(152, 187, 132); +} + +/* Hide content */ +.hide { + display: none; +} diff --git a/static/icons/android-chrome-192x192.png b/static/icons/android-chrome-192x192.png new file mode 100644 index 0000000..e3bad4e --- /dev/null +++ b/static/icons/android-chrome-192x192.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eecbdd1d8e8b0752166b0d28d82e6c60e028251529a3b4975484fdf16db01639 +size 9023 diff --git a/static/icons/apple-touch-icon-precomposed.png b/static/icons/apple-touch-icon-precomposed.png new file mode 100644 index 0000000..f5edac2 --- /dev/null +++ b/static/icons/apple-touch-icon-precomposed.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0151e7ba969b8197d867a04a0545e66dc9fdc070b62e116a30b8c22c42548f7f +size 8710 diff --git a/static/icons/apple-touch-icon.png b/static/icons/apple-touch-icon.png new file mode 100644 index 0000000..17c17c8 --- /dev/null +++ b/static/icons/apple-touch-icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60c94e8ce32871366752c563c3ef0c52b49ca35b4199f0ef7e44e5063034e0f2 +size 8636 diff --git a/static/icons/browserconfig.xml b/static/icons/browserconfig.xml new file mode 100644 index 0000000..7daf9c1 --- /dev/null +++ b/static/icons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #ffffff + + + diff --git a/static/icons/favicon-16x16.png b/static/icons/favicon-16x16.png new file mode 100644 index 0000000..f8c1179 --- /dev/null +++ b/static/icons/favicon-16x16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ed5472b0ee44c1833135ff3f772f60e8b6c63ccfb84976948d6a75dc44aea8d +size 743 diff --git a/static/icons/favicon-32x32.png b/static/icons/favicon-32x32.png new file mode 100644 index 0000000..1b77f3c --- /dev/null +++ b/static/icons/favicon-32x32.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae392e8a3fb9e299e3cef1202370e97b415a849be5d71ac8aa61a0299126a5ff +size 1497 diff --git a/static/icons/favicon.ico b/static/icons/favicon.ico new file mode 100644 index 0000000..75597ce Binary files /dev/null and b/static/icons/favicon.ico differ diff --git a/static/icons/mstile-150x150.png b/static/icons/mstile-150x150.png new file mode 100644 index 0000000..1acf65c --- /dev/null +++ b/static/icons/mstile-150x150.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40bf304cfe82258fa7d2c8e408ef36d0b721605e35f11c0d79e4f705ca12b251 +size 5776 diff --git a/static/icons/safari-pinned-tab.svg b/static/icons/safari-pinned-tab.svg new file mode 100644 index 0000000..41c842f --- /dev/null +++ b/static/icons/safari-pinned-tab.svg @@ -0,0 +1,16 @@ + + + + Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + + + + + + + + diff --git a/static/icons/site.webmanifest b/static/icons/site.webmanifest new file mode 100644 index 0000000..4fcd7f1 --- /dev/null +++ b/static/icons/site.webmanifest @@ -0,0 +1,15 @@ +{ + "name": "Site Anri K.", + "short_name": "Site Anri K.", + "icons": [ + { + "src": "android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + } + ], + "theme_color": "#2a2424", + "background_color": "#2a2424", + "start_url": "https://www.mylloon.fr/", + "display": "standalone" +} diff --git a/templates/index.html b/templates/index.html index 8149be7..85ecc8a 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1 +1,78 @@ -Hello, {{ name }}! + + + + Page principale - Anri + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+
+ +
+ + diff --git a/templates/networks.html b/templates/networks.html new file mode 100644 index 0000000..833f425 --- /dev/null +++ b/templates/networks.html @@ -0,0 +1,108 @@ + + + + Mes réseaux - Anri + + + + + + + + + + + + + + + + + + + + + + +
+

Contacts et réseaux sociaux

+

+ Email +

+

+ Twitter / + Mastodon +

+

+ Compte et + Serveur Discord +

+

Reddit

+

+ Instagram / + Pixelfed +

+

+ Github / + Gitlab / + Codeberg / + Mon Git +

+

+ Kitsu +

+

Steam

+

+ Youtube / + Twitch +

+

+ Keyoxide +

+
+ + + diff --git a/templates/portfolio.html b/templates/portfolio.html new file mode 100644 index 0000000..38f0dfd --- /dev/null +++ b/templates/portfolio.html @@ -0,0 +1,218 @@ + + + + Mon portfolio - Anri + + + + + + + + + + + + + + + + + + + + + + + +

Projets qui me tiennent à coeur

+
+

Bots

+
+

+ KassouBot +

+
+

+ ✨ Basé sur une + ancienne version, + permet de faire plusieurs choses comme maintenir des reminders, des + todos, écouter de la musique, etc. +

+
+

+ feurBot +

+
+

+ Réponds à certains tweets (exemple : si un tweet fini par + quoi, le bot répondra feur). +

+
+

+ Bot-Tom +

+
+

+ Utilise SQLite pour avoir des commandes personnalisables sur Twitch. +

+
+

+ Botanique +

+
+

+ ✨ + Pas ma première expérience en matière de bot Discord. Actuellement en actif + développement. Complètement libre et écrit en Typescript. +

+
+
+
+

+ Projet de l'université +

+
+

+ ✨ Parce que j'ai fait plusieurs projets dont je suis fier mais qui ne + mérite pas une place entière sur cette page comme mon + premier pendu ou une jolie + interface manager/caisser, vous pouvez simplement aller voir la liste des projets en vrac qui + sont disponibles sur mon + git. +

+
+

Projets perso

+
+

+ Constnium +

+
+

+ Calculez votre propre constante sur la base de votre prénom en + multipliant de vraies constantes mathématiques entre elles. Une + démo est disponible ici. +

+
+

+ cal8tor +

+
+

+ Lecteur de l'emploi du temps pour la licence d'informatique de Paris + 8, avec possibilité d'exporter le calendrier en ICS. +

+
+

+ prose_dl +

+
+

+ Permets de télécharger tous les posts d'un utilisateur depuis + prose.sh. J'ai + écrit ici sur son + développement. +

+
+

+ downloadCodium +

+
+

+ Petit script qui permet de télécharger et garder à-jour facilement + la version .AppImage VSCodium. +

+
+

+ confOS +

+
+

+ Scripts et fichiers de configuration pour me simplifier la vie quand + je réinstalle mes systèmes d'exploitation. +

+
+

+ mobilismScrap +

+
+

Deux versions, une en python et une en Kotlin :

+
    +
  • + Celle en Python permet juste de lancer, en ligne de commande, une + recherche qui va récupérer sur le forum Mobilism des versions + crackées d'applications mobiles. +
  • +
  • + ✨ Celle en Kotlin est une application android qui fait + basiquement la même chose mais avec une interface plus sympa. +
  • +
+
+

+ cleanTemporaryFiles +

+
+

+ Petit script Windows qui lance quelques commandes pour supprimer les + fichiers temporaires. +

+
+

+ microphonePopcat +

+
+

+ Petit programme en python qui permet d'ouvrir la bouche d'un chat + quand on parle. +

+
+

+ renameFilesForPlex +

+
+

+ Petit programme pour renommer des fichiers vidéo (séries) pour + qu'ils soient lisibles directement par Plex. +

+
+
+
+ + +