{"id":27440595,"url":"https://github.com/riwspy/lcc-docs","last_synced_at":"2026-01-28T09:03:41.183Z","repository":{"id":239405762,"uuid":"799435812","full_name":"RiwsPy/lcc-docs","owner":"RiwsPy","description":"Page statique regroupant les mods de l'Infinity Engine existants","archived":false,"fork":false,"pushed_at":"2025-04-13T08:13:08.000Z","size":26810,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-14T22:57:05.299Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://riwspy.github.io/lcc-docs/","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"11jo/lcc-docs","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RiwsPy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-12T06:11:33.000Z","updated_at":"2025-04-13T08:12:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"5339ca83-d1a0-40f0-bf0c-bee75c93d794","html_url":"https://github.com/RiwsPy/lcc-docs","commit_stats":null,"previous_names":["riwspy/lcc-docs"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RiwsPy%2Flcc-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RiwsPy%2Flcc-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RiwsPy%2Flcc-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RiwsPy%2Flcc-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RiwsPy","download_url":"https://codeload.github.com/RiwsPy/lcc-docs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248975317,"owners_count":21192208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-14T22:57:10.955Z","updated_at":"2026-01-28T09:03:41.177Z","avatar_url":"https://github.com/RiwsPy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Liste des mods de l'Infinity Engine\n\nVersion maintenue de la [liste des mods](https://lacouronnedecuivre.github.io/lcc-docs/) BG de FreddyGwendo \\\nReprise de la liste des mods de JohnBob\n\n## Infos\n\nLe fichier `db/mods.json` contient les informations nécessaires à la génération de la page. Pour ajouter, corriger, supprimer un mod c'est lui et seulement lui qu'il faut éditer.\n\n## Installation\n\n### Le minimum vital\n\n[Python](https://www.python.org/downloads/)3.11+\\\n[uv](https://docs.astral.sh/uv/getting-started/installation/), le gestionnaire de paquet\n\n### Créez l'environnement virtuel\n```\n    cd lcc-docs/\n    uv sync\n```\n\n### Testez l'intégrité du fichier mods.json\n```\n    uv run main.py scripts/check_mods_json.py\n```\n\n### Créez la page statique du site\n```\n    uv run main.py scripts/update_index.py\n```\nCela génère le fichier `index.html` dans `docs/` ainsi que les pages traduites (chacune présente dans son dossier associé, ex : `db/fr/index.html` pour la version française).\n\n## Améliorations par rapport à la v1\n\nCette version propose plusieurs améliorations techniques notables :\n* Bien meilleure maintenabilité\n* Merge des 8 jeux de données en un seul\n* Merge des 8 templates : exit le fix typo à appliquer 8 fois\n* Pas de connaissance nécessaire en html/css pour faire des modifications\n* Suppression de la plage d'identifiant unique pour les mods\n* Une seule feuille de style (avec utilisation de variable…)\n* Retrait des styles inlines css\n* Script de génération de la page `index.html`\n* Les mods peuvent être dans plusieurs catégories\n* Du responsive (un tableau ça a des limites)\n* Une facilité de lecture accrue (taille de police, des images etc)\n* Modification aisée de la structure de la donnée (et des mods qui vont avec)\n* Filtre par nom\n* Filtre par qualité de mod\n* CI qui check automatiquement la conformité du contenu de `mods.json`\n* Traduction possible de l'interface et du contenu\n* …\n\n## Limites\n* Modifier un Json est moins sexy que de passer par un formulaire fait pour ça\n* Le Json est moins sexy d'une base de données relationnelle pour gérer les relations\n* …\n\n\n## TODO\n* Remplacer le Json par du Yaml paraît être une bonne idée mais la multiplication des `'\\\"\\'` en tout genre ne m'y a pas encouragé (peut-être une config permet de contourner le problème ou une autre solution est envisageable ?)\n* Formulaire d'ajout d'un mod qui renvoit son équivalent en Json (plus qu'à l'ajouter à la db)\n* Rédaction de GuideLine pour les contributeurs (wip)\n\n\n## Doc\n\nComme tout se fait dans le fichier `db/mods.json`, il est important de savoir ce qui est possible de faire ou non.\n\n### Le JSON c'est quoi ?\nDocumentation sur le JSON : https://developer.mozilla.org/fr/docs/Learn/JavaScript/Objects/JSON\\\nOutil en ligne pour valider le format de votre json : https://jsonformatter.curiousconcept.com\n\n\n### Informations par défaut des mods :\n```json\n    {\n        \"id\": 0,\n        \"name\": \"\",\n        \"description\": \"\",\n        \"urls\": [],\n        \"categories\": [],\n        \"games\": [],\n        \"authors\": [],\n        \"team\": [],\n        \"notes\": [],\n        \"translation_state\": \"no\",\n        \"safe\": 2,\n        \"languages\": [],\n        \"status\": \"active\",\n        \"last_update\": \"\",\n        \"compatibilities\": {},\n        \"tp2\": \"\"\n    }\n```\n\n\n### Détails\n`id`: identifiant unique du mod\\\n`name` : nom du mod\\\n`description` : description du mod\\\n`urls` : liste de lien, généralement lien de téléchargement ou/et lien du forum le présentant\\\n`categories`: liste des catégories dans lesquelles le mod est placé. Valeurs possibles :\n - Patch non officiel\n - Utilitaire\n - Conversion\n - Interface\n - Cosmétique\n - Portrait et son\n - Quête\n - PNJ recrutable\n - PNJ One Day\n - PNJ (autre)\n - Forgeron et marchand\n - Sort et objet\n - Kit\n - Gameplay\n - Script et tactique\n - Personnalisation du groupe\n - GemRB\n\n`games` : liste des jeux sur lesquels le mod est fonctionnel. Valeurs possibles :\n - BG\n - BG2\n - BGT\n - Tutu\n - BGEE\n - SoD\n - BG2EE\n - EET\n - IWD\n - IWD2\n - IWDEE\n - PST\n - PSTEE\n\n`authors`: liste des personnes ayant participé à la création/maintenance du mod\\\n`team` : liste des personnes ayant participé à la traduction du mod\\\n`notes` : liste de messages indiquant des points d'attention\\\n`translation_state` : le mod est traduit ou pas, ou s'il ne nécessite pas de traduction. Valeurs possibles :\n - `\"yes\"` : ✅ Mod traduit\n - `\"no\"` : ❌ Mod non traduit\n - `\"n/a\"` : ✅ Mod ne nécessitant pas de traduction\n - `\"todo\"` : ❎ Mod partiellement traduit\n - `\"wip\"` : ❌ Mod en cours de traduction\n - `\"auto\"` : ? Si le Mod possède la langue courante dans `languages`, alors `yes` sinon `no`\n\n`safe` : si le mod est considéré comme fiable (installable via weidu, maintenu, ne génère pas d'incompatibilités). Valeurs possibles :\n - `2` : 🟢 Mod de qualité\n - `1` : ⚠️ Mod pouvant poser des problèmes\n - `0` : 🟥 Mod à éviter ou obsolète\n\n`languages` : langues dans lesquelles le mod existe, actuellement non affiché, format [ISO-3166-1](https://fr.wikipedia.org/wiki/ISO_3166-1)\n\n`status` : la raison peut être indiquée dans les `notes`\n - `\"active\"` : mod actif\n - `\"archived\"` : mod est archivé et donc non maintenu\n - `\"obsolete\"` : incompatible avec les dernières versions des jeux originaux ou/et EE (exemple d'un mod fait sous EE 1.3 mais jamais upgrade depuis)\n - `\"embed\"` : intégré en tant que composant (et maintenu) dans un autre mod ou pack\n - `\"missing\"` : lien de téléchargement disparu\n - `\"wip\"` : le mod est phase de développement\n - `\"hidden\"` : le mod ne s'affiche pas dans la liste\n\n`last_update` : date connue de la dernière mise à jour du mod, champ automatique, format `YYYY-MM`\n\n`tp2` : nom du fichier tp2 du mod. Valeurs possibles :\n - `\"nom du tp2\"` : le vrai nom du tp2 (sans le setup-)\n - `\"n/a\"` : non concerné (notamment pour les utilitaires)\n - `\"non-weidu\"` : pas de fichier tp2 car non-WeiDU\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friwspy%2Flcc-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Friwspy%2Flcc-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friwspy%2Flcc-docs/lists"}