7.5 KiB
date | title | weight |
---|---|---|
2019-04-04T15:59:52+02:00 | Arborescence et fichiers | 10 |
Afin de pouvoir être importé automatiquement sur la plate-forme, vos scénarios doivent respecter une certaine arborescence que voici :
. ├── AUTHORS.txt ├── overview.txt ├── title.txt ├── heading.jpg ├── CHID-Titre du défi/ │ ├── challenge.txt │ ├── finished.txt (opt.) │ ├── links.txt │ ├── overview.txt │ ├── resolution.mp4 │ ├── statement.txt │ ├── hints/ (opt.) │ │ ├── DIGESTS.txt │ │ └── ... │ ├── files/ │ │ ├── DIGESTS.txt │ │ └── ... │ └── ressources/ │ └── ... │ ├── CHID-Titre du défi/ │ └── ... └── ...
{{% notice info %}} N'ajoutez pas inutilement de dossiers ou fichiers vides. Ceux-ci doivent sans doute être optionnels. {{% /notice %}}
Utilisez le binaire repochecker (amd64/linux) pour vous assurer de votre arbrescence et de la validité du contenu des fichiers :
cd /mnt/fic/MyTheme
repochecker .
...
repochecker /mnt/fic/MyTheme/1-MyChallenge/
CHID
Dans les noms de dossiers, CHID
correspond à un identifiant permettant de référencer votre défi (pour déclarer une dépendance sur celui-ci par exemple).
L'import s'effectuant selon l'ordre alphabétique, vous devriez utiliser le numéro d'ordre de l'exercice comme identifiant :
. ├── 1-Titre du premier défi/ │ └── ... ├── 2-Titre du deuxième défi/ │ └── ... └── ...
Dans cet exemple, si l'ordre était déterminé uniquement par l'ordre alphabétique des noms de dossiers, le deuxième serait devant le premier (d<p
).
Ajouter le numéro d'ordre permet de contrôler plus facilement l'ordre des exercices, sans que cela soit affiché dans l'interface.
Fichiers pour un scénario
AUTHORS.txt
Voir la [page dédiée]({{<relref "authors">}}).
title.txt
Ce fichier peut être utilisé pour y inscrire le nom du scénario, tel qu'il doit apparaître sur l'interface.
Par défaut, sans ce fichier, c'est le nom du dossier contenant les challenges qui est utilisé.
heading.jpg
Chaque scénario devrait avoir une image/photo représentative. Je vous invite donc à trouver votre bonheur sur : Unsplash ou à partager un travail personnel. Mais attention aux licences et contraintes (notamment l'obligation de citer la source ou le photographe) si vous utilisez un autre service qu'unsplash.
La taille et l'orientation de l'image n'a pas d'importance, mais gardez en tête que c'est son centre qui sera affiché, si la hauteur dépasse la taille prévue.
overview.txt
Une présentation rapide du scenario (~2-3 phrases d'accroche pour lecture rapide), compréhensible par un décideur, petit schéma à l'appui.
Le fichier doit comporter une phrase d'accroche (qui sera affichée plus grosse que les suivantes). Celle-ci correspond à la première ligne de votre fichier.
Comme l'ensemble des textes importés, vous pouvez utiliser du Markdown pour mettre en forme vos textes.
Vous pouvez insérer des images dans tous les textes :
![alt](path title)
Le chemin doit être un chemin absolu vers l'image, considérant la racine comme étant le dossier du scémario (pour l'overview du thème) ou de l'exercice (pour les autres textes).
Fichiers pour un défi
challenge.txt
Voir la [page dédiée]({{<relref "challenge">}}).
finished.txt
Remplissez ce fichier optionnel, lorsque vous souhaitez apporter une information aux participants une fois qu'ils ont validé votre défi.
Comme l'ensemble des textes importés, vous pouvez utiliser du Markdown pour mettre en forme vos textes.
links.txt
Voir la [page dédiée]({{<relref "links">}}).
overview.txt
Une présentation rapide du défi (~1-2 phrases), compréhensible par un décideur, petit schéma à l'appui si besoin.
Le fichier doit comporter une phrase d'accroche (qui sera affichée plus grosse que les suivantes). Celle-ci correspond à la première ligne de votre fichier.
Comme l'ensemble des textes importés, vous pouvez utiliser du Markdown pour mettre en forme vos textes.
Gardez en tête que les overview, que ce soit scénario ou exercices, sont affichées au public : il s'agit à la fois d'aguicher le participant pour qu'il fasse votre scénario plutôt que celui d'un autre groupe, mais aussi de donner envie au public de lire plus en détail.
resolution.mp4
Voir la [page dédiée]({{<relref "resolution">}}).
statement.txt
contenant le scénario du challenge, tel qu'il sera affiché sur le site, à destination des participants Une présentation rapide du défi (~1-2 phrases), compréhensible par un décideur, petit schéma à l'appui si besoin.
Le fichier doit comporter une phrase d'accroche (qui sera affichée plus grosse que les suivantes). Celle-ci correspond à la première ligne de votre fichier.
Comme l'ensemble des textes importés, vous pouvez utiliser du Markdown pour mettre en forme vos textes.
files/
Utilisez ce dossier pour y placer les fichiers que vous mettez à disposition des participants.
Chaque fichier doit avoir une entrée correspondante dans le fichier
DIGESTS.txt
; plus d'infos sur la page [DIGESTS.txt
]({{<relref
"digests">}}).
- Pas plus 4GB à télécharger par challenge (ie. tous les fichiers de ce challenge)
- Archives
.tar.bz2
,.tar.gz
,.tar.xz
ou.zip
lorsque nécessaire. PAS de.rar
, ... - Compresser (sans tarball, juste via gzip1) les fichiers lorsque c'est utile (memory dump, images BMP, disques, fichiers textes, ...)
- Utiliser
$(split -b 240M -d BIG_FILE BIG_FILE.)
pour uploader les gros fichiers sur owncloud. Ces fichiers seront concaténés au moment de leur import sur l'interface. Seul le hash du fichier entier est requis dans le fichierDIGESTS.txt
.
hints/
Utilisez ce dossier pour y placer les fichiers que vous mettez à disposition, dans le cadre d'indices.
Chaque fichier doit avoir une entrée correspondante dans le fichier
DIGESTS.txt
; plus d'infos sur la page [DIGESTS.txt
]({{<relref
"digests">}}).
De plus, chaque fichier doit également posséder une entrée dans le fichier
[challenge.txt
]({{<relref "challenge">}}), afin de lui attribuer son coût,
titre, ...
ressources/
Rangez dans ce dossier toutes les ressources et scripts que vous avez réalisés
pour le challenge : pour sa construction ou sa résolution, les schémas du SI au
premier challenge concerné, éventuellement un README.txt
avec les liens des
outils externes.
-
l'intérêt de
gzip
est que le serveur web sera capable de distribuer le fichier sans faire apparaître la compression. Voir le module nginx utilisé. ↩︎