Skip to content

Commit cd656ec

Browse files
Update site from branch main changes [ci skip]
0 parents  commit cd656ec

127 files changed

Lines changed: 230123 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
docs/templates/*.html linguist-language=HTML
2+
docs/static/css/*.css linguist-language=CSS
3+
docs/static/js/*.js linguist-language=JavaScript
4+
*.py linguist-language=Python

.github/workflows/ci.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Test & Build
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- main
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout Repository
15+
uses: actions/checkout@v4
16+
17+
- name: Install uv
18+
uses: astral-sh/setup-uv@v6
19+
with:
20+
version: "latest"
21+
python-version: 3.11
22+
enable-cache: true
23+
24+
- name: Run tests
25+
run: uv run main.py scripts/check_mods_json.py
26+
27+
build:
28+
needs: test
29+
if: >-
30+
success() &&
31+
github.event_name == 'push'
32+
runs-on: ubuntu-latest
33+
steps:
34+
- name: Checkout Repository
35+
uses: actions/checkout@v4
36+
with:
37+
fetch-depth: 0
38+
39+
- name: Install uv
40+
uses: astral-sh/setup-uv@v6
41+
with:
42+
version: "latest"
43+
python-version: 3.11
44+
enable-cache: true
45+
46+
- name: Generate HTML
47+
run: uv run main.py scripts/update_index.py
48+
49+
- name: Deploy to gh-pages
50+
run: |
51+
git config user.name "github-actions[bot]"
52+
git config user.email "github-actions[bot]@users.noreply.github.com"
53+
54+
git checkout --orphan gh-pages
55+
56+
cp -r docs/* .
57+
58+
git add -f docs/index.html
59+
git add -f docs/**/index.html
60+
git commit -m "Update site from branch main changes [ci skip]" || echo "No changes to commit"
61+
git push --force origin gh-pages

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
__pycache__/
2+
.venv/
3+
docs/**/index.html
4+
lccdocs.log

CONTRIBUTING.md

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
# Lignes de bonne conduite du contributeur (WIP)
2+
3+
4+
## Le JSON c'est quoi ?
5+
6+
Documentation sur le JSON : https://developer.mozilla.org/fr/docs/Learn/JavaScript/Objects/JSON
7+
8+
Outil en ligne pour valider le format de votre json : https://jsonformatter.curiousconcept.com\
9+
Pour les utilisateurs de Notepad++ : https://github.com/molsonkiko/JsonToolsNppPlugin
10+
11+
12+
## Le fichier .ini
13+
14+
Parfois, les mods possèdent un fichier `.ini`. Plus d'informations [ici](https://www.gibberlings3.net/forums/topic/32516-tutorial-what-is-label-why-you-should-create-it-and-how-to-do-it-properly/).\
15+
Les données contenues dans ce fichier sont considérées comme les plus fiables, on y trouve entre autre :
16+
- `Name` : le nom du mod
17+
- `Author` : le nom de l'auteur
18+
- `Description` : la description (succinte) du mod
19+
- `HomePage` : url de présentation du mod
20+
21+
En tant que contributeur, il est conseillé de l'utilliser autant que possible.\
22+
En tant que moddeur, il est encouragé de le remplir.
23+
24+
25+
## name
26+
27+
Le nom du mod.\
28+
Cette donnée n'est pas aussi simple qu'elle n'y paraît : le nom est variable selon la source.\
29+
Souvent le nom du post diffère de celui du repo.\
30+
En cas de fichier `.ini`, on prend celui qui est renseigné dedans.\
31+
Sinon, on peut se baser sur le nom du sujet de présentation du mod ou du titre dans le readme du mod.\
32+
On préviligiera les noms courts. En évitant les rallonges qui indiquent les compatibilités du mod (le champ `games` permet déjà de renseigner cette information).\
33+
Deux mods ne peuvent avoir le même nom. Cependant, il peut exister deux versions d'un même mod pour deux jeux. Dans ce cas, on peut préciser le nom du jeu entre parenthèse pour les différencier.\
34+
Exemple : `Dragonspear UI++` et `Dragonspear UI++ (IWDEE)`.
35+
36+
37+
## description
38+
39+
La description du mod.\
40+
C'est un "teaser", la description ne doit pas être complète mais donner envie au lecteur de cliquer sur le lien pour en savoir plus.\
41+
Conseils :
42+
- Les informations doivent être stables, on évite :
43+
- les commentaires personnels : `cet auteur est génial`
44+
- les dates fixes : `ce mod existe depuis 3 ans`
45+
- toute information périssable : `ce mod activement maintenu`
46+
- Si des informations sont à la fois à éviter et pertinentes, elles peuvent être renseignées dans le champ `notes`.
47+
- Les balises html sont fonctionnelles dans la description, cela n'est pas cependant pas conseillé.
48+
49+
50+
### Aides pour se simplifier la vie
51+
- `|` : le pipe, il permet de revenir à la ligne (le saut de ligne n'étant pas autorisé dans le json)
52+
- \`\` : le backtick (l'accent grave), il permet de mettre en `surbrillance un bout de phrase`
53+
- `[[ ]]` : le lien interne, il n'est pas rare qu'un mod parle d'un autre mod, on rajoute un lien : [[nom du mod]]
54+
- `[]()` : le lien externe, comme avec les fichiers .md, `[description du lien](url)`
55+
56+
## notes
57+
58+
Les notes du mod écrites par les contributeurs pour compléter la description du mod.\
59+
- On y met :
60+
- Des conseils sur l'installation
61+
- Les incompatibilités éventuelles
62+
- Les points d'attention variés
63+
- On évite :
64+
- Les jugements de valeur : `le travail de cet auteur laisse à désirer`
65+
- On remplacera :
66+
- `ce mod existe depuis 3 ans``ce mod existe depuis 2017`
67+
- `Attention le troisième composant n'est pas compatible avec YY``Attention le composant XX n'est pas compatible avec YY`
68+
69+
70+
⚠️ Certaines notes sont automatiques.\
71+
On trouvera le code dans `Mod.get_auto_notes` dans `models/mods.py`.\
72+
En voici un résumé des notes automatiques qui ne sont donc **PAS** à ajouter :
73+
- Noms des traducteurs
74+
- `Ce mod n'est disponible qu'en {langue}.`
75+
- Mods EE qui datent d'avant la version 2.0 : `⚠️ EE : La dernière mise à jour date de {year}. Ce mod pourrait ne pas fonctionner avec la dernière version du jeu.`
76+
- Mod non WeiDU (tp2="non-weidu") : `⚠️ WeiDU : Ce mod écrase les fichiers et ne peut être désinstallé. Installez-le à vos risques et périls.`
77+
- Mod archivé (status="archived") : `Ce mod a été archivé par son auteur/mainteneur qui ne semble pas vouloir lui donner suite.`
78+
- Mod disparu (status="missing") : `Ce mod a disparu.`
79+
80+
Les `aides` du champ `description` sont fonctionnelles dans les notes.
81+
82+
83+
## safe
84+
85+
Ce champ renseigne sur la qualité du mod en général. Les valeurs possibles vont de 0 à 2.
86+
87+
2 : 🟢 Mod de qualité
88+
1 : ⚠️ Mod pouvant poser des problèmes
89+
0 : 🟥 Mod à éviter ou obsolète
90+
91+
À titre informatif, voici quelques règles utilisées :
92+
* Ce qui met automatiquement la note à **0**
93+
* Le mod est intégré dans un autre mod plus à jour : `status="embed"`
94+
* Le mod est considéré comme obsolète : `status="obsolete"`
95+
* Ce qui diminue la note de **1** point :
96+
* Le mod est compatible EE mais pas mis à jour depuis la version 2.0 (Avril 2016)
97+
* Le mod est compatible EE, de la catégorie `Interface` mais pas mis à jour depuis Avril 2021
98+
* Le mod n'est pas weidu : `tp2="non-weidu"`
99+
* Le mod est archivé (et donc plus maintenu) : `status="archived"`
100+
* Ce qui **limite** la note à 1 point (c'est-à-dire qu'ils valent 0 ou 1)
101+
* Le mod est en cours de création : `status="wip"`
102+
* Le mod a disparu : `status="missing"`
103+
104+
105+
Les effets sont cumulatifs.\
106+
Un mod dont le lien a disparu et qui n'est pas WeiDU vaut 0.
107+
108+
## urls
109+
Les urls permettent de renvoyer le lecteur vers un complément d'information mais aussi vers le mod.\
110+
Idéalement, deux liens sont présents :
111+
1. Le premier vers la description officielle du mod faite par l'auteur, souvent il s'agit d'une discussion de forum où l'on peut également trouver les retours des utilisateurs, des bugs éventuels… tout un tas d'informations utiles.
112+
2. Le second pointe vers le mod a proprement parlé, on privilégiera ici les liens vers des repo git
113+
114+
115+
### Fiabilité de la donnée
116+
117+
Si le mod contient un fichier .ini, on préviligie la `HomePage` comme lien n°1.
118+
119+
### Sécurité
120+
121+
La totalité des liens sont des liens **externes**, cela implique que l'on ne sait **pas** ce qu'il y a derrière.\
122+
Ainsi, la facilité ne doit **PAS** primer sur la sécurité.
123+
124+
#### https
125+
126+
Dans la mesure du possible, le **https** doit être proposé.\
127+
Si un lien est en **http**, essayez d'accéder à la page en **https**. Si cela fonctionne, renseignez le lien https.\
128+
Certains sites n'acceptent pas ce protocole, dans ce cas c'est toléré.
129+
130+
131+
#### Pas de téléchargement direct
132+
133+
Comme on ne peut pas assurer du contenu de l'objet téléchargé, le mieux c'est encore de ne rien télécharger. On redirige le lecteur vers la page qui permet le téléchargement, mais la charge lui revient de cliquer (ou pas) sur le lien au sein de la page.
134+
135+
136+
#### Viser un message spécifique dans une discussion
137+
138+
Parfois, un mod se situe au beau milieu d'une discussion. Dans la mesure du possible, ciblez le message en question dans l'url.
139+
140+
#### Viser la page d'accueil plutôt que le blob/plop/release/
141+
142+
Cela concerne notamment les liens github.\
143+
La description du mod ne sera jamais suffisante et ne sera peut-être pas à jour. Il faut autant que possible, rediriger vers la page d'accueil avec le README, le code et la visualisation sur les releases etc… Cela donne un contexte bien plus pertinent que la page avec juste un lien de téléchargement.
144+
145+
Cas particulier pour le forum **beamdog** : on retirera la fin de l'url qui n'est pas maintenable et complique les comparaisons, par exemple :\
146+
https://forums.beamdog.com/discussion/63741/ \
147+
plutôt que\
148+
https://forums.beamdog.com/discussion/63741/plip-plop-plup/
149+
150+
151+
152+
153+
## categories
154+
155+
Les catégories d'appartenance du mod.\
156+
Plusieurs catégories peuvent être choisies.
157+
158+
159+
`PNJ One Day` est une catégorie qui répond à des spécifités particulières. Les One Day n'ont plus la côte. Le choix a été fait de lever ces restrictions. Dans cette catégorie, on trouvera les "vrais" One Day mais aussi les personnages avec peu de contenu, notamment en terme de banters.
160+
161+
162+
163+
Certaines catégories s'entrecroisent, on évitera de toutes les renseigner.\
164+
Quelques exemples :
165+
- Un mod d'`Interface` est souvent également `Cosmétique`. `Cosmétique` étant plus générique, on ne précisera que `Interface`.
166+
- Un mod peut ajouter un `PNJ recrutable` et rendre le `Kit` du personnage disponible pour le PJ. On garde `PNJ recutable` car c'est l'objectif du mod. De plus, on ne veut pas de description d'un personnage dans la catégorie `Kit`.
167+
- Un pack de `Sort et objet` peut être vendu chez des `Forgeron et marchand`. Pas de solution miracle. La description présente-t-elle les objets ou le marchand ? Si la réponse n'est pas évidente, il n'est pas interdit de mettre les deux catégories.
168+
169+
170+
## update_date
171+
Cette date au format `YYYY-MM` contient la date de la dernière mise à jour du mod.\
172+
La date doit être comprise entre le 1er Janvier 1999 et la date d'aujourd'hui.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 RiwsPy
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)