Site perso de Yann Bellahsene-Yanat : HTML, CSS et JavaScript, sans framework. Il est hébergé sur GitHub Pages, et Appwrite sert seulement pour le contact et le livre d’or.
➡️ Le pas-à-pas (GitHub, DNS name.com, Appwrite, jeu de piste) est dans GUIDE.md.
Seul le dossier docs/ est publié en ligne. Le guide et tools/ restent privés.
docs/ ← LE SITE (publié par GitHub Pages)
index.html Accueil
a-propos.html À propos
projets.html Projets
contact.html Contact + livre d'or
404.html Page 404 (+ terminal secret via le Konami code)
b4ckstage/ Page cachée n°1 (citée dans robots.txt)
0x5f3759df/ Page finale du jeu de piste (aucun lien vers elle)
robots.txt Indice n°2
sitemap.xml Pages publiques, pour Google
CNAME sltcyann.dev
.nojekyll GitHub sert les fichiers tels quels
assets/css/style.css
assets/js/boot.js Thème + langue choisis avant l'affichage
assets/js/main.js Menu, bouton thème, drapeaux, message console, Konami
assets/js/config.js Réglages Appwrite (ID public uniquement !)
assets/js/contact.js Formulaire de contact + livre d'or
assets/js/egg.js Terminal secret (déchiffre le flag)
assets/js/egg-data.js Flag chiffré (généré, ne pas modifier à la main)
assets/img/favicon.svg
(racine du dépôt, non publiée)
README.md, GUIDE.md
tools/serve.py Serveur local qui imite GitHub Pages
tools/check_links.py Vérifie les liens internes
tools/encrypt-flag.mjs Rechiffre le flag
python3 tools/serve.py
Puis ouvre http://localhost:8000. Pour vérifier les liens :
python3 tools/check_links.py
Chaque texte existe en deux versions côte à côte :
<p data-l="fr">Bonjour</p>
<p data-l="en">Hello</p>
Modifie toujours les deux. Le titre de l’onglet se règle avec data-title-fr / data-title-en sur <body>.
config.js ne contient que l’ID public du projet Appwrite.textContent, jamais avec innerHTML.