Initial commit
This commit is contained in:
commit
3e92397fe1
23 changed files with 459 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
public/
|
||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[submodule "themes/ametrine"]
|
||||
path = themes/ametrine
|
||||
url = https://codeberg.org/Geode/ametrine.git
|
||||
101
config.toml
Normal file
101
config.toml
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
base_url = "https://lyes.eu"
|
||||
title = "Lyes Saadi"
|
||||
description = "Le site de Lyes"
|
||||
author = "Lyes Saadi"
|
||||
default_language = "fr"
|
||||
output_dir = "public"
|
||||
|
||||
theme = "ametrine"
|
||||
compile_sass = true
|
||||
|
||||
# generate_feeds = true
|
||||
feed_filenames = ["atom.xml", "rss.xml"]
|
||||
build_search_index = true
|
||||
|
||||
[markdown]
|
||||
highlight_code = true
|
||||
# extra_syntaxes_and_themes = ["sublime"]
|
||||
highlight_theme = "dracula"
|
||||
# highlight_themes_css = [
|
||||
# { theme = "monokai-pro-dark", filename = "syntax-theme-dark.css" },
|
||||
# { theme = "monokai-pro-light", filename = "syntax-theme-light.css" },
|
||||
# ]
|
||||
render_emoji = true
|
||||
smart_punctuation = true
|
||||
bottom_footnotes = true
|
||||
lazy_async_image = true
|
||||
external_links_class = "external"
|
||||
insert_anchor_links = "left"
|
||||
|
||||
[slugify]
|
||||
paths = "on"
|
||||
taxonomies = "on"
|
||||
anchors = "on"
|
||||
|
||||
[languages.en]
|
||||
title = "Lyes Saadi"
|
||||
description = "Lyes' website"
|
||||
# generate_feeds = true
|
||||
feed_filenames = ["atom.xml", "rss.xml"]
|
||||
build_search_index = true
|
||||
|
||||
[extra]
|
||||
home_url = "@/home/index.md"
|
||||
accent_color = ["hsl(19 75% 42%)", "hsl(276 82% 78%)"]
|
||||
katex = true
|
||||
toc = true
|
||||
show_copy_button = true
|
||||
show_reading_time = true
|
||||
show_backlinks = true
|
||||
timezone = "Europe/Paris"
|
||||
theme_switcher = true
|
||||
date_locale = "fr_FR"
|
||||
|
||||
[extra.en]
|
||||
date_locale = "en_US"
|
||||
|
||||
[extra.meta]
|
||||
favicon = "icon.png"
|
||||
apple_touch_icon = "icon.png"
|
||||
|
||||
[extra.nav]
|
||||
icon = "icon.png"
|
||||
links = [
|
||||
{ url = "@/blog/_index.md", name = "Blog", icon = "newspaper" },
|
||||
{ name = "Académique", category = [
|
||||
{ url = "@/studies/index.md", name = "Formation", icon = "graduation-cap" },
|
||||
{ url = "@/research/_index.md", name = "Recherche", icon = "microscope" },
|
||||
] },
|
||||
# { name = "Projets", category = [
|
||||
# { url = "#", name = "Informatique", icon = "linux-logo" },
|
||||
# ] },
|
||||
]
|
||||
|
||||
[extra.nav.en]
|
||||
# icon = "icon.png"
|
||||
links = [
|
||||
{ url = "@/blog/_index.md", name = "Blog", icon = "newspaper" },
|
||||
{ name = "Academic", category = [
|
||||
{ url = "@/studies/index.md", name = "Studies", icon = "graduation-cap" },
|
||||
{ url = "@/research/_index.md", name = "Research", icon = "microscope" },
|
||||
] },
|
||||
# { name = "Projects", category = [
|
||||
# { url = "#", name = "Computer science", icon = "linux-logo" },
|
||||
# ] },
|
||||
]
|
||||
|
||||
[extra.footer]
|
||||
copyright = true
|
||||
show_timestamp = true
|
||||
show_powered_by = true
|
||||
socials = [
|
||||
# { url = "https://matrix.to/#/@lyessaadi:crans.org", icon = "matrix" }
|
||||
]
|
||||
|
||||
[extra.footer.en]
|
||||
copyright = true
|
||||
show_timestamp = true
|
||||
show_powered_by = true
|
||||
socials = [
|
||||
# { url = "https://matrix.to/#/@lyessaadi:crans.org", icon = "matrix" }
|
||||
]
|
||||
3
content/_index.en.md
Normal file
3
content/_index.en.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
+++
|
||||
render = false
|
||||
+++
|
||||
3
content/_index.md
Normal file
3
content/_index.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
+++
|
||||
render = false
|
||||
+++
|
||||
7
content/blog/_index.en.md
Normal file
7
content/blog/_index.en.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Lyes' Blog"
|
||||
generate_feeds = true
|
||||
+++
|
||||
|
||||
Nothing to see here yet unfortunately :pensive:. But that shan't remain this
|
||||
way for long!
|
||||
7
content/blog/_index.md
Normal file
7
content/blog/_index.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Le blog de Lyes"
|
||||
generate_feeds = true
|
||||
+++
|
||||
|
||||
Rien à voir ici pour l'instant malheureusement :pensive:. Mais cela ne saurait
|
||||
rester comme ça pour longtemps !
|
||||
82
content/home/index.en.md
Normal file
82
content/home/index.en.md
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
+++
|
||||
title = "Lyes' website"
|
||||
aliases = ["/en/"]
|
||||
[extra]
|
||||
styles = ["home.css"]
|
||||
scripts = ["home/index.js"]
|
||||
no_header = true
|
||||
+++
|
||||
|
||||
<div class="presentation">
|
||||
<div class="presentation-inside">
|
||||
<img class="no-hover" src="/icon.png" />
|
||||
<div class="name-box">
|
||||
<div class="name">
|
||||
Lyes Saadi
|
||||
</div>
|
||||
<div class="description">
|
||||
Studying the foundations of computer science
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="buttons start big">
|
||||
<a class="suggested" href="#who-am-i">About me ↓</a>
|
||||
<a href="/en/studies/">My studies ↗</a>
|
||||
<a href="/en/research/">My research ↗</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Who am I ?
|
||||
|
||||
My name's Lyes Saadi (in phonetic :
|
||||
{{ audio(name="/ljes/ /sæ.ɑːdi/", url="pron_ipa.flac") }}, in arabic :
|
||||
{{ audio(name="إِلْيَاسْ السَّعْدِي", url="pron_ar.flac") }}), my pronouns are He/They
|
||||
and I am <span id="age">(i was born on the 18/04/2002, you can compute my age
|
||||
yourself if you are skilled enough to know how to deactivate JavaScript ^^)
|
||||
</span> years old!
|
||||
|
||||
Currently, I'm in my 2<sup>nd</sup> year of Master's at the Parisian Master of
|
||||
Research in Computer Science ([MPRI](https://mpri-master.ens.fr/))
|
||||
and in my 3<sup>rd</sup> year of studies at the École Normale Supérieure
|
||||
de Paris-Saclay.
|
||||
|
||||
### My passions
|
||||
|
||||
I have long been passioned by computer science. My interests are mainly around
|
||||
the foundations of computer science and its interactions with mathematics. In
|
||||
particular, I am interested by type theory, category theory, proof assistants,
|
||||
programming languages and logics. I am also very interested with the
|
||||
interactions between these domains and other domains of computer science and
|
||||
mathematics.
|
||||
|
||||
I am also a staunnch activist for free software! For example, this wesite uses
|
||||
[Zola](https://www.getzola.org/) and [Ametrine](https://ametrine.daudix.one/)
|
||||
and is served by my own server `zora`, currently hosted in the bay of the
|
||||
[Cra@ns](https://crans.org/)! I use on both my server and my own personal
|
||||
computer [NixOS](https://nixos.org/). I also contribute to a wide variety of
|
||||
Free or Open Source software when I have some free time.
|
||||
|
||||
Outside of computer science, I also follow with great attention the debats
|
||||
around the academic world. I also follow debates around urbanism and public
|
||||
transportation. Tchoo tchoo :steam_locomotive: !
|
||||
|
||||
### My goals in life
|
||||
|
||||
Currently, my main goal in life is trying to become a university professor, to
|
||||
do both research and teaching.
|
||||
|
||||
I would like to do research first and foremost, to change the world, type by
|
||||
type, functor by functor. But also because theoretical computer science is too
|
||||
awesome and incredible not to dedicate it [find a joke].
|
||||
|
||||
But also teaching, to spread further the beautiful world that is theoretical
|
||||
computer science, which unfortunately remains largely unknown to the wider
|
||||
public. Computer science isn't only computers and programs, but it's also a
|
||||
whole other world of science which extends upon mathematics and logics !
|
||||
|
||||
## Contacting me
|
||||
|
||||
To reach me, I prefer to be contacted using one of the following ways:
|
||||
- mail : `perso.web-1` at `lyes.eu`
|
||||
- matrix : [`@lyessaadi:crans.org`](https://matrix.to/#/@lyessaadi:crans.org)
|
||||
- signal : [`ntlyes.42`](https://signal.me/#eu/bFE8tdLcYtSVBxPpu0ErfZ8ZlcC1jMmres4JOfzYn4b9v8h3UxlHWJ3rTSYWwmEd)
|
||||
25
content/home/index.js
Normal file
25
content/home/index.js
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
// Source - https://stackoverflow.com/questions/4076321/javascript-age-calculation
|
||||
// Posted by Matt
|
||||
// Retrieved 2025-11-22, License - CC BY-SA 2.5
|
||||
function calculateAge(birthDate, otherDate) {
|
||||
var years = (otherDate.getFullYear() - birthDate.getFullYear());
|
||||
|
||||
if (otherDate.getMonth() < birthDate.getMonth() ||
|
||||
otherDate.getMonth() == birthDate.getMonth() && otherDate.getDate() < birthDate.getDate()) {
|
||||
years--;
|
||||
}
|
||||
|
||||
return years;
|
||||
}
|
||||
|
||||
function lyesAge() {
|
||||
let birth = new Date("2002-04-18")
|
||||
let today = new Date()
|
||||
return calculateAge(birth, today)
|
||||
}
|
||||
|
||||
function changeAge() {
|
||||
document.getElementById("age").setHTML(lyesAge())
|
||||
}
|
||||
|
||||
changeAge()
|
||||
86
content/home/index.md
Normal file
86
content/home/index.md
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
+++
|
||||
title = "Le site de Lyes"
|
||||
aliases = ["/"]
|
||||
[extra]
|
||||
styles = ["home.css"]
|
||||
scripts = ["home/index.js"]
|
||||
no_header = true
|
||||
audio_button = true
|
||||
+++
|
||||
|
||||
<div class="presentation">
|
||||
<div class="presentation-inside">
|
||||
<img class="no-hover" src="/icon.png" />
|
||||
<div class="name-box">
|
||||
<div class="name">
|
||||
Lyes Saadi
|
||||
</div>
|
||||
<div class="description">
|
||||
Étudiant en informatique fondamentale
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="buttons start big">
|
||||
<a class="suggested" href="#qui-suis-je">À propos de moi ↓</a>
|
||||
<a href="/studies/">Mon parcours ↗</a>
|
||||
<a href="/research/">Mes recherches ↗</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Qui suis-je ?
|
||||
|
||||
Je m'appelle Lyes Saadi (en phonétique :
|
||||
{{ audio(name="/ljes/ /sæ.ɑːdi/", url="pron_ipa.flac") }}, en arabe :
|
||||
{{ audio(name="إِلْيَاسْ السَّعْدِي", url="pron_ar.flac") }}), mes pronoms sont Il/Iel
|
||||
et j'ai <span id="age">(je suis né le 18/04/2002, vous pouvez calculer mon age
|
||||
vous-même si vous savez désactiver JavaScript ^^)</span> ans !
|
||||
|
||||
En ce moment, je suis en 2<sup>ème</sup> année de Master au Master Parisien
|
||||
de Recherche en Informatique ([MPRI](https://mpri-master.ens.fr/)) ainsi qu'en
|
||||
3<sup>ème</sup> année d'étude à l'École Normale Supérieure Paris-Saclay.
|
||||
|
||||
### Mes passions
|
||||
|
||||
Je suis un passioné d'informatique, notamment des fondements de l'informatique
|
||||
et de ses interactions avec les mathématiques. Mes passions sont ainsi la
|
||||
théorie des types, la théorie des catégories, les assistants de preuve, les
|
||||
langages de programmation et la logique mathématique et informatique. Je suis
|
||||
aussi très intéressé par les intéractions de ces domaines avec les autres
|
||||
domaines de l'informatique et des mathématiques plus largement.
|
||||
|
||||
Je suis aussi un ardent défendeur du logiciel libre ! Ce site web utilise ainsi
|
||||
[Zola](https://www.getzola.org/) et [Ametrine](https://ametrine.daudix.one/) et
|
||||
est servi par mon propre serveur `zora` actuellement hébergé dans la baie du
|
||||
[Cra@ns](https://crans.org/) ! J'utilise pour mon ordinateur personnel et mon
|
||||
serveur [NixOS](https://nixos.org/). Je contibue aussi à plusieurs projets
|
||||
Libre ou Open Source quand j'ai du temps libre.
|
||||
|
||||
En dehors de l'informatique, je suis avec attention les débats autour du monde
|
||||
académique et universitaires. Et j'aime aussi beaucoup suivre les politiques
|
||||
d'urbanisme et de transports en communs. Vive les trains :steam_locomotive: !
|
||||
|
||||
### Mes objectifs dans la vie
|
||||
|
||||
Actuellement, mon but principal dans la vie est de devenir
|
||||
enseignant-chercheur.
|
||||
|
||||
Faire de la recherche avant tout, pour changer le monde, type par type,
|
||||
foncteur par foncteur. Mais surtout parce que l'informatique fondamentale c'est
|
||||
trop génial et passionant pour ne pas s'y plonger corps et groupe[^1] dans son
|
||||
étude.
|
||||
|
||||
Mais aussi de l'enseignement, pour aussi mieux faire connaître ces domaines
|
||||
pourtant passionants, mais malheureusement méconnus du grand public.
|
||||
L'informatique ce n'est pas que des ordinateurs et des programmes, mais c'est
|
||||
aussi toute une science au prolongements des mathématiques et de la logique.
|
||||
|
||||
## Me contacter
|
||||
|
||||
Pour me joindre, je préfère être contacté par ces moyens :
|
||||
- mail : `perso.web-1` arobase `lyes.eu`
|
||||
- matrix : [`@lyessaadi:crans.org`](https://matrix.to/#/@lyessaadi:crans.org)
|
||||
- signal : [`ntlyes.42`](https://signal.me/#eu/bFE8tdLcYtSVBxPpu0ErfZ8ZlcC1jMmres4JOfzYn4b9v8h3UxlHWJ3rTSYWwmEd)
|
||||
|
||||
---
|
||||
|
||||
[^1]: Je m'excuse dès à présent pour la qualité sous-optimale de mes blagues.
|
||||
BIN
content/home/pron_ar.flac
Normal file
BIN
content/home/pron_ar.flac
Normal file
Binary file not shown.
BIN
content/home/pron_ipa.flac
Normal file
BIN
content/home/pron_ipa.flac
Normal file
Binary file not shown.
6
content/research/_index.en.md
Normal file
6
content/research/_index.en.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = "My research work"
|
||||
generate_feeds = true
|
||||
+++
|
||||
|
||||
Still writing this section, come back later !
|
||||
6
content/research/_index.md
Normal file
6
content/research/_index.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = "Mes travaux de recherche"
|
||||
generate_feeds = true
|
||||
+++
|
||||
|
||||
Section toujours en rédaction, revenez plus tard !
|
||||
5
content/studies/index.en.md
Normal file
5
content/studies/index.en.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
+++
|
||||
title = "My studies"
|
||||
+++
|
||||
|
||||
Still writing this section, come back later !
|
||||
5
content/studies/index.md
Normal file
5
content/studies/index.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
+++
|
||||
title = "Mon parcours"
|
||||
+++
|
||||
|
||||
Section toujours en rédaction, revenez plus tard !
|
||||
73
i18n/fr.toml
Normal file
73
i18n/fr.toml
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
language_name = "Français" # Shown in language picker for multi-language sites.
|
||||
date_locale = "fr_FR"
|
||||
full_stop = "." # Used at the end of a sentence.
|
||||
|
||||
skip_to_content = "Skip to Main Content"
|
||||
comments = "Commentaires"
|
||||
read_also = "Voir aussi"
|
||||
filter_tag = "Filtrer par tag"
|
||||
filter_category = "Filtrer par catégorie"
|
||||
many_posts = "$NUMBER billets de blog au total"
|
||||
# As in "Previous post"
|
||||
previous = "Précédent"
|
||||
# As in "Next post"
|
||||
next = "Suivant"
|
||||
file_an_issue = "Signaler un problème"
|
||||
# As in "Post details"; publication date, tags, and such.
|
||||
details = "Détails"
|
||||
header_tags = "Tags"
|
||||
author_separator = ", "
|
||||
author_conjunction = " et "
|
||||
by_author = "Par $AUTHOR"
|
||||
article_author = "Auteur de l'article"
|
||||
loading = "Chargement…"
|
||||
no_comments = "Aucun commentaire :/"
|
||||
reload = "Recharger"
|
||||
sensitive = "Contenu sensible"
|
||||
comments_qr = "Code QR vers le message Mastodon"
|
||||
comments_description = "Vous pouvez commenter sur ce billet de blog en répondant publiquement à ce billet sur Mastodon ou tout autre compte ActivityPub/Fediverse. Les commentaires publiés sur les instances publiques connues sont affichés ci-dessous."
|
||||
load_comments = "Charger les commentaires"
|
||||
open_post = "Open Post"
|
||||
comments_noscript = "JavaScript est nécessaire pour charger les commentaires. Pour voir les commentaires, activez JavaScript et rechargez la page ou visitez le message sur Mastodon."
|
||||
random = "Aléatoire"
|
||||
toggle_sidebar = "Activer/Désactiver la barre verticale"
|
||||
search_shortcut = "Appuyez sur « / » pour ouvrir la barre de recherche"
|
||||
search = "Recherche"
|
||||
search_placeholder = "Recherchez…"
|
||||
first = "Premier"
|
||||
last = "Dernier"
|
||||
archived = "Archivé"
|
||||
trigger_warning = "Trigger Warning"
|
||||
disclaimer = "Avertissement"
|
||||
alert_note = "Information"
|
||||
alert_tip = "Astuce"
|
||||
alert_important = "Important"
|
||||
alert_warning = "Attention"
|
||||
alert_caution = "Prudence"
|
||||
alert_edit = "Modification"
|
||||
alert_fact = "Anecdote"
|
||||
many_tags = "$NUMBER tags au total"
|
||||
one_tags = "$NUMBER tag au total"
|
||||
one_posts = "$NUMBER billet de blog au total"
|
||||
posts = "$NUMBER billets de blog au total"
|
||||
tags = "$NUMBER tags au total"
|
||||
all_tags = "Voir tous les tags"
|
||||
header_categories = "Catégories"
|
||||
many_categories = "$NUMBER catégories au total"
|
||||
one_categories = "$NUMBER catégorie au total"
|
||||
categories = "$NUMBER catégories au total"
|
||||
category_description = "Aucune information renseignée sur cette categorie."
|
||||
all_categories = "Voir toutes les categories"
|
||||
powered_by = "Créé avec $ZOLA et $AMETRINE"
|
||||
change_language = "Langue"
|
||||
category_no_info = "Aucune information renseignée sur cette categorie."
|
||||
minutes = "$NUMBER minutes"
|
||||
one_minutes = "$NUMBER minute"
|
||||
many_minutes = "$NUMBER minutes"
|
||||
copy_code = "Copier le code"
|
||||
contents = "Sommaire"
|
||||
back_to_top = "Revenir au début"
|
||||
feed = "Flux"
|
||||
words = "$NUMBER mots"
|
||||
many_words = "$NUMBER mots"
|
||||
one_words = "$NUMBER mot"
|
||||
7
sass/_fonts.sass
Normal file
7
sass/_fonts.sass
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
@font-face
|
||||
font-family: "LibreBaskerville"
|
||||
src: url("/fonts/LibreBaskerville-Regular.otf") format("opentype")
|
||||
|
||||
@font-face
|
||||
font-family: "YoungSerif"
|
||||
src: url("/fonts/YoungSerif-Regular.otf") format("opentype")
|
||||
38
sass/home.sass
Normal file
38
sass/home.sass
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
@use "fonts"
|
||||
|
||||
.presentation
|
||||
height: calc(100vh - 9rem)
|
||||
display: flex
|
||||
padding: 2rem
|
||||
margin-bottom: 6rem
|
||||
justify-content: center
|
||||
flex-direction: column
|
||||
|
||||
img
|
||||
height: 10rem
|
||||
width: 10rem
|
||||
margin: .5rem 1rem
|
||||
border-radius: 100%
|
||||
|
||||
.presentation-inside
|
||||
display: flex
|
||||
flex-direction: row
|
||||
flex-wrap: wrap
|
||||
|
||||
.name-box
|
||||
flex: auto
|
||||
|
||||
.name
|
||||
font:
|
||||
size: 5.5rem
|
||||
family: "YoungSerif"
|
||||
style: italic
|
||||
weight: bold
|
||||
color: var(--accent-color)
|
||||
margin: .5rem 0
|
||||
line-height: normal
|
||||
|
||||
.description
|
||||
color: var(--fg-muted-2)
|
||||
font-size: 1.25rem
|
||||
|
||||
BIN
static/fonts/LibreBaskerville-Regular.otf
Normal file
BIN
static/fonts/LibreBaskerville-Regular.otf
Normal file
Binary file not shown.
BIN
static/fonts/YoungSerif-Regular.otf
Normal file
BIN
static/fonts/YoungSerif-Regular.otf
Normal file
Binary file not shown.
BIN
static/icon.png
Normal file
BIN
static/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 71 KiB |
1
themes/ametrine
Submodule
1
themes/ametrine
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit b77ea3fa81362265b80bc77237670ec130573fe6
|
||||
Loading…
Add table
Add a link
Reference in a new issue