Ajoute les images libres et les couleurs des jeux
Validation du contenu / validate (push) Has been cancelled
Validation du contenu / validate (push) Has been cancelled
- documente l'ajout d'images sous licence libre ou avec autorisation de l'éditeur (assets/assets.json) et ajoute son schéma ; - les images sont traitées comme des fichiers binaires ; - couleurs d'Azul et d'Harmonies, et couleurs propres à l'extension Crescendo, reprises des pochettes ; - schéma des extensions régénéré (champ colors). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1 +1,5 @@
|
||||
* text=auto eol=lf
|
||||
*.png binary
|
||||
*.jpg binary
|
||||
*.jpeg binary
|
||||
*.webp binary
|
||||
|
||||
@@ -99,6 +99,63 @@ La fiche de règles d'une extension (`rules.fr.json`, schéma
|
||||
`expansion-rules.schema.json`) n'exige que `summary` : décrivez ce qui change
|
||||
(mise en place, déroulement, décompte), pas tout le jeu.
|
||||
|
||||
## Ajouter des images
|
||||
|
||||
Par défaut, l'app affiche la miniature BoardGameGeek du jeu. Vous pouvez
|
||||
fournir un **logo** (carré) et une **bannière** (format large, environ 3:1),
|
||||
**uniquement si leurs droits le permettent** :
|
||||
|
||||
| Licence (`license`) | Quand l'utiliser |
|
||||
|---|---|
|
||||
| `CC0-1.0` | domaine public, aucune attribution requise |
|
||||
| `CC-BY-4.0` | réutilisation libre avec attribution |
|
||||
| `CC-BY-SA-4.0` | réutilisation libre avec attribution et partage à l'identique |
|
||||
| `publisher-permission` | l'éditeur autorise cet usage par écrit : `permission` doit pointer vers cette autorisation |
|
||||
|
||||
Une image trouvée sur internet, une photo de boîte ou un visuel de l'éditeur
|
||||
**sans licence libre ni autorisation écrite** n'a pas sa place ici.
|
||||
|
||||
```
|
||||
games/230802-azul/
|
||||
assets/
|
||||
assets.json
|
||||
logo.webp
|
||||
banner.webp
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"$schema": "../../../schemas/assets.schema.json",
|
||||
"schemaVersion": 1,
|
||||
"files": [
|
||||
{
|
||||
"file": "logo.webp",
|
||||
"role": "logo",
|
||||
"license": "CC-BY-4.0",
|
||||
"author": "Nom de l'auteur",
|
||||
"source": "https://… (page d'origine de l'image)"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Le CI vérifie que :
|
||||
|
||||
- chaque image est déclarée dans `assets.json`, et chaque image déclarée
|
||||
est présente ;
|
||||
- c'est vraiment une image **PNG, JPEG ou WebP** (pas de SVG) qui correspond
|
||||
à son extension ;
|
||||
- elle pèse **512 Ko au maximum** (préférez WebP) ;
|
||||
- l'auteur est indiqué (sauf CC0), et le lien d'autorisation pour
|
||||
`publisher-permission`.
|
||||
|
||||
L'app affiche le crédit (auteur, licence, lien vers la source) près de chaque
|
||||
image. Une extension peut aussi avoir son dossier `assets/`, dans son propre
|
||||
dossier.
|
||||
|
||||
**À la relecture**, vérifiez la licence sur la page `source` (et
|
||||
l'autorisation sur `permission`) : le CI ne peut pas le faire à votre place.
|
||||
|
||||
## Vérifier avant d'envoyer
|
||||
|
||||
Avec un éditeur qui comprend les schémas JSON (VS Code…), la clé `$schema`
|
||||
|
||||
@@ -17,6 +17,8 @@ games/
|
||||
scoring.json # modèle de score (comment compter les points)
|
||||
rules.fr.json # fiche de règles en français
|
||||
README.md # notes libres (facultatif)
|
||||
assets/ # images sous licence libre (facultatif)
|
||||
assets.json # licence, auteur et source de chaque image
|
||||
expansions/ # extensions vendues à part (une par dossier)
|
||||
<bggId>-<nom>/
|
||||
expansion.json # ce que l'extension ajoute au jeu de base
|
||||
@@ -34,7 +36,10 @@ de BoardGameGeek : on ne les recopie pas ici.
|
||||
- **Du code** : les modèles de score sont des fichiers JSON déclaratifs. Si un
|
||||
jeu demande une règle de calcul que le format ne sait pas exprimer, ouvrez
|
||||
un ticket sur le dépôt de l'app.
|
||||
- **Des images, logos ou PDF** : ce sont des œuvres des éditeurs.
|
||||
- **Des images sans licence libre** (visuels de boîte, logos d'éditeurs…) ni
|
||||
autorisation écrite, et des **PDF** : ce sont des œuvres protégées. Les
|
||||
images libres sont acceptées, déclarées avec leur licence (voir
|
||||
[CONTRIBUTING.md](CONTRIBUTING.md#ajouter-des-images)).
|
||||
- **Le texte des livrets de règles** : une fiche de règles est un résumé
|
||||
rédigé avec vos propres mots, qui renvoie aux règles officielles.
|
||||
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"winner": "highest",
|
||||
"icon": "Palette",
|
||||
"colors": {
|
||||
"primary": "#005b8f"
|
||||
"primary": "#1d5f96",
|
||||
"secondary": "#e4572e"
|
||||
},
|
||||
"options": [
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"schemaVersion": 1,
|
||||
"bggId": 472690,
|
||||
"name": "Crescendo",
|
||||
"colors": { "primary": "#5b3f86", "secondary": "#f19bb0" },
|
||||
"adds": {
|
||||
"options": [
|
||||
{ "type": "boolean", "id": "sanctuaires", "label": "Module Sanctuaires", "default": true },
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
},
|
||||
"icon": "TreePine",
|
||||
"colors": {
|
||||
"primary": "#065f46"
|
||||
"primary": "#2b4aa8",
|
||||
"secondary": "#f2a93b"
|
||||
},
|
||||
"options": [
|
||||
{
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema": {
|
||||
"type": "string"
|
||||
},
|
||||
"schemaVersion": {
|
||||
"type": "number",
|
||||
"const": 1
|
||||
},
|
||||
"files": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"file": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*\\.(png|jpe?g|webp)$"
|
||||
},
|
||||
"role": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"logo",
|
||||
"banner"
|
||||
]
|
||||
},
|
||||
"license": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"CC0-1.0",
|
||||
"CC-BY-4.0",
|
||||
"CC-BY-SA-4.0",
|
||||
"publisher-permission"
|
||||
]
|
||||
},
|
||||
"author": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 120
|
||||
},
|
||||
"source": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"pattern": "^https\\:\\/\\/"
|
||||
},
|
||||
"permission": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"pattern": "^https\\:\\/\\/"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"file",
|
||||
"role",
|
||||
"license",
|
||||
"source"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"minItems": 1
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"schemaVersion",
|
||||
"files"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Images libres d'un jeu (assets/assets.json)"
|
||||
}
|
||||
@@ -22,6 +22,23 @@
|
||||
"format": "uri",
|
||||
"pattern": "^https\\:\\/\\/"
|
||||
},
|
||||
"colors": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"primary": {
|
||||
"type": "string",
|
||||
"pattern": "^#[0-9a-fA-F]{6}$"
|
||||
},
|
||||
"secondary": {
|
||||
"type": "string",
|
||||
"pattern": "^#[0-9a-fA-F]{6}$"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"primary"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"adds": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
||||
Reference in New Issue
Block a user