尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Comprendre et contrer n'importe quel champion de League of Legends pendant l'écran de chargement.
Le site est pensé pour les débutants : tu tapes le nom du champion adverse sur ton téléphone, et tu as en moins d'une minute :
mf, j4, kog…). Appuie sur Entrée pour ouvrir le premier résultat, / pour revenir dans la recherche et Échap pour quitter une fiche.sitemap.xml, robots.txt et une vraie page 404.vercel.json gère les routes de l'application)Aucune librairie de routage : deux pages ne le justifiaient pas. Un mini-routeur basé sur l'History API se trouve dans src/lib/router.js.
Prérequis : Node.js 20.19 ou plus récent.
npm install
npm run dev # http://localhost:5173
npm test # tests unitaires
npm run lint
npm run build # version de production dans dist/ (avec pré-rendu, voir plus bas)
npm run preview # sert dist/ en local
npm run build enchaîne trois étapes :
vite build : construit l'application pour le navigateur ;vite build --ssr src/entry-server.jsx : construit la même application pour Node ;node scripts/prerender.js : récupère les données Riot du dernier patch, génère avec React le HTML de l'accueil et de chaque champion (dist/champion/Darius.html…), puis écrit sitemap.xml, robots.txt et 404.html.Chaque page contient ses données : dans le navigateur, React reprend la main sur le HTML existant (hydratation) sans rien retélécharger. vercel.json (cleanUrls) sert champion/Darius.html à l'adresse /champion/Darius.
Le build a besoin d'accéder à Data Dragon. S'il échoue (serveurs de Riot indisponibles), Vercel garde la version précédente en ligne. L'adresse du site utilisée dans les balises se règle avec la variable VITE_SITE_URL (par défaut https://lol-en-1-minute.vercel.app).
src/
content/champions/ fiches rédigées (une par champion)
data/nicknames.js surnoms reconnus par la recherche
lib/ddragon.js accès à Data Dragon, cache, mise en forme des données
lib/search.js recherche tolérante (normalisation, surnoms, fautes de frappe)
lib/router.js mini-routeur
lib/seo.js titre, description, balises de partage et données structurées
entry-server.jsx point d'entrée du pré-rendu
scripts/prerender.js génère les pages HTML, le sitemap et robots.txt
pages/ accueil et fiche champion
components/ composants partagés
Base gris neutre, avec l'illustration officielle du champion fondue dans le haut de la page. Les couleurs vives sont réservées à ce qui doit se repérer vite ; toutes sont des variables en haut de src/styles.css :
--key-p … --key-r), identique partout. Dans une fiche, une touche citée seule (« son E », « (Q) ») est automatiquement affichée avec sa couleur ;--role-assassin, --role-mage…) ;--threat) pour ce qu'il faut craindre, vert (--counter) pour comment gagner, or (--gold) pour les actions.Crée src/content/champions/<id>.json, où <id> est l'identifiant Riot du champion en minuscules : darius, missfortune, kogmaw, ou monkeyking pour Wukong. Vite charge automatiquement tous les fichiers de ce dossier.
Inspire-toi de darius.json :
| Champ | Contenu |
|---|---|
plan | Son plan de jeu en une phrase |
aSurveiller | La menace numéro 1 et comment réagir |
genre | Optionnel : "f" pour une championne (« Comment la battre », « Quand elle devient forte ») |
menace | Optionnel : la touche du sort à surveiller ("E"). Sinon, la première touche citée dans aSurveiller est utilisée |
contrer | 3 conseils concrets pour le battre |
forces | 3 forces |
faiblesses | 3 faiblesses |
sorts | Un résumé d'une ligne pour P, Q, W, E et R |
momentFort | Ses fenêtres de puissance face à son adversaire direct (même voie ou jungle contre jungle) : niveaux clés, sort qui change tout quand il est disponible, bon schéma d'échange. Ex. Ahri : bon niveau 1 (auto, W, auto), dangereuse quand son charme (E) est prêt, puis au niveau 6. Pour un champion joué à deux rôles, deux textes : { "voie": "…", "jungle": "…" }, affichés avec « En voie : » et « En jungle : » |
patch | Le patch où la fiche a été vérifiée (ou null) |
Règle d'or : chaque phrase doit pouvoir se lire en quelques secondes.
Le site existe en français (à la racine : /champion/Darius), en anglais (/en/champion/Darius) et en espagnol (/es/champion/Darius). Un drapeau dans l'en-tête mène à la même page dans une autre langue. Chaque version a son titre, sa description et des balises hreflang qui relient les trois pages pour Google ; le sitemap les liste toutes.
src/i18n.js (un bloc par langue).fr_FR, en_US, es_ES).src/content/champions/en/<id>.json et src/content/champions/es/<id>.json. Elles ne contiennent que les textes (plan, aSurveiller, contrer, forces, faiblesses, sorts, momentFort) ; genre, menace, patch et auteur restent dans la fiche française, qui fait référence.Quand tu corriges une fiche française, pense à reporter la correction dans ses deux traductions. Les tests vérifient que chaque traduction existe, garde des phrases courtes et cite exactement les mêmes touches (Q, W, E, R) que la fiche française.
Pour ajouter une langue : une entrée dans LANGS et ses textes dans src/i18n.js, son drapeau dans src/components/LanguageSwitcher.jsx, puis un dossier de fiches traduites.
Les prochaines tâches sont listées dans TODO.md.
LoL en 1 minute n'est pas approuvé par Riot Games et ne reflète pas les opinions de Riot Games ni de quiconque officiellement impliqué dans la production ou la gestion de League of Legends. League of Legends et Riot Games sont des marques commerciales ou des marques déposées de Riot Games, Inc.