« Fichier:Rkn-tronc.pl » : différence entre les versions

De RinKaNou
Aller à la navigationAller à la recherche
m (→‎Fichier d'entrée : précision)
m (licence)
 
Ligne 6 : Ligne 6 :
|-
|-
|'''Publié le'''||14 juillet 2009 à 17:58 (UTC)
|'''Publié le'''||14 juillet 2009 à 17:58 (UTC)
|-
|'''Licence'''||[http://www.gnu.org/licenses/gpl.html GPL] version 3 ou supérieure
|}
|}



Dernière version du 15 novembre 2009 à 22:36

Nom rkn-tronc.pl
Révision SVN-9
Publié le 14 juillet 2009 à 17:58 (UTC)
Licence GPL version 3 ou supérieure


Ce script Perl permet de résoudre automatiquement les dépendances entre compétences troncs.

Appel

L'appel se fait sous la forme :

./rkn-tronc.pl fichier_d_entrée.json >fichier_de_sortie.mw

Fichier d'entrée

Le fichier d'entrée (dont l'extension n'importe pas) est au format JSON, sous forme d'un hachage de hachages, dont la clef est la compétence principale du groupe et la valeur le sous-hachage. Ce sous-hachage a pour clefs les compétences associées, et comme valeurs la hauteur du tronc entre la compétence principale et la compétence associée.

Voici un exemple de fichier d'entrée :

# Fichier « troncs.json »
{
  # Compétences techniques :
  "Comp1": {
   "Comp2": 20,
   "Comp3": 25,
  },
  "Comp2": {
   "Comp4": 15,
  },
  "Comp5": {
   "Comp6": 55,
   "Comp7": 20,
  },
}

La mise en forme (indentation, retours à la ligne, espaces) de ce fichier n'importe pas. Comme montré dans l'exemple, il est possible d'ajouter des commentaire grâce au caractère dièse (#).

En revanche il est important de respecter les guillemets autour des chaînes de caractères (noms des compétences), ainsi que les virgules au sein des listes (les virgules en fin de liste peuvent être omises, mais autant toujours les mettre). Si vous oubliez une virgule en milieu de liste (juste avant "Comp5" par exemple), vous obtiendrez une erreur de la forme :

Fichier d'entrée : « troncs.json »
, or } expected while parsing object/hash, at character offset 104 [""Comp5": {n     "Com..."] at ./rkn-tronc.pl line 49, <INPUT_FILE> line 13.

Il est également indispensable que les noms des compétences apparaissant plusieurs fois soient écrits de manière strictement identique (attention aux accents !).

Note : pour un exemple réel de fichier d'entrée, voyez la page Liste de compétences (Sengoku)/troncs-sengoku.json.

Format de sortie

Note : la sortie se fait sur la sortie standard, aussi faut-il rediriger le flux vers un fichier pour sauvegarder le résultat du programme (cf. exemple d'appel).

À partir des données d'entrée, le programme génère deux sections au format MediaWiki :

  1. La liste des compétences avec leurs compétences associées et le score maximal du tronc concerné ; un même tronc apparaît donc autant de fois qu'il comporte de compétences.
  2. la liste des troncs, classés par score ; un tronc comportant plusieurs compétences associées à différents niveaux apparaitra autant de fois que de niveaux différents.

Avec le fichier d'entrée présenté en exemple, le programme génèrera le code MediaWiki suivant :

== Troncs, par compétence ==

; Comp1 :
:* Comp2 : 20%
:* Comp3 : 25%
:* Comp4 : 15%

; Comp2 :
:* Comp1 : 20%
:* Comp3 : 20%
:* Comp4 : 15%

; Comp3 :
:* Comp1 : 25%
:* Comp2 : 20%
:* Comp4 : 15%

; Comp4 :
:* Comp1 : 15%
:* Comp2 : 15%
:* Comp3 : 15%

; Comp5 :
:* Comp6 : 55%
:* Comp7 : 20%

; Comp6 :
:* Comp5 : 55%
:* Comp7 : 20%

; Comp7 :
:* Comp5 : 20%
:* Comp6 : 20%

== Troncs, par score ==

; 15% :
:* Comp1
:* Comp2
:* Comp3
:* Comp4

; 20% :
:* Comp1
:* Comp2
:* Comp3

; 20% :
:* Comp5
:* Comp6
:* Comp7

; 25% :
:* Comp1
:* Comp3

; 55% :
:* Comp5
:* Comp6

Ce code peut être collé tel quel dans une page du wiki, il sera affiché correctement.

Note : pour un exemple réel de format de sortie, voyez la page Liste de compétences (Sengoku)/Troncs.

Historique du fichier

Cliquer sur une date et heure pour voir le fichier tel qu'il était à ce moment-là.

Date et heureDimensionsUtilisateurCommentaire
actuel14 juillet 2009 à 17:58 (6 kio)Xiloynaha (discussion | contributions)rkn-tronc.pl, révision SVN-9, ~~~~~

Aucune page n’utilise ce fichier.