Ceci est une ancienne révision du document !
Table des matières
Language / Langue : FR | EN
Texte et formatage (YAML)
Retours à la ligne
Dans un bloc YAML texte: |, les retours à la ligne du fichier sont respectés tels quels.
Pour un retour à la ligne affiché dans Discord (dans les formats qui ne supportent pas les vraies nouvelles lignes) : utiliser +n+.
Bloc texte encadré
Quand le contenu entre [[ et ]] n'est pas une URL d'image, il s'affiche dans un encart (bloc code sur Discord, boîte sur web/desktop) :
texte: "[[Mémo : la clé se trouve dans la bibliothèque.]]"
Formatage Markdown inline
Ces styles fonctionnent dans tous les modes (quel que soit markdown: global) :
| Syntaxe | Rendu |
|---|---|
**texte** | Gras |
*texte* | Italique |
__texte__ | Souligné |
~~texte~~ | ~~Barré~~ |
| ``texte`` | Code inline |
||texte|| | Spoiler (cliquer pour révéler) |
> texte (sur sa propre ligne) | Citation blockquote |
Blocs de code colorés
texte: | ```diff - ancienne règle + nouvelle règle ``` ```python def lancer_de(faces): return random.randint(1, faces) ```
Langages supportés : diff, yaml, python, js, json, bash, et tous ceux supportés par highlight.js (web/desktop). Sur Discord, rendu en bloc code générique.
Blocs sémantiques (markdown: story)
En ajoutant markdown: story dans l'en-tête du scénario, cinq types de blocs narratifs sont disponibles avec chacun leur rendu visuel distinct :
texte: | ```narration La brume s'épaissit entre les arbres. Quelque chose vous observe. ``` ```dialogue **L'inconnu** : Vous n'auriez pas dû venir ici. ``` ```pensee *Il ment. Ses mains tremblent légèrement.* ``` ```systeme **Objectif mis à jour** : Trouver l'origine de la cloche. ``` ```journal Nuit du 14 octobre. Troisième nuit sans sommeil. ```
Cinq types : narration ; dialogue ; pensee ; systeme ; journal
Le rendu visuel dépend du style UI choisi par le joueur (classique, rpg, terminal, aventure) - pas une clé YAML auteur.
Styles par bloc (v4.9)
Dans une liste texte:, chaque bloc peut avoir son propre style (web/desktop uniquement - ignoré sur Discord et terminal) :
texte: - "Texte normal sans style" - taille: 28 police: Georgia texte: "Titre en Georgia 28 px" - taille: 14 police: monospace fond: "#111827" couleur-texte: "#facc15" texte: "Badge en monospace avec fond sombre" - taille: 18 si: "v_score_v > 0" texte: "Affiché seulement si score > 0 : v_score_v pts"
| Clé | Valeur |
|---|---|
taille: | Taille en pixels (ex: 18, 24) |
police: | Famille CSS (ex: Georgia, monospace, cursive) |
fond: | Couleur de fond CSS (ex: “#111827”) |
couleur-texte: | Couleur du texte CSS (ex: “#facc15”) |
Ces clés s'appliquent au bloc entier. Pour styler un seul mot, utiliser le Markdown inline.
Couleur de fond d'une salle
La clé fond: sur une salle définit la couleur d'arrière-plan pour cette salle uniquement (web/desktop) :
- id: salle_nuit fond: "#0d1117" texte: "Il fait nuit noire."
Champ markdown: global
Défini en en-tête du scénario, il enveloppe tout le texte des salles :
| Valeur | Rendu |
|---|---|
fix | Bloc monospace (défaut) |
none | Texte brut |
bold | Gras |
italic | Italique |
quote | Citation blockquote |
story | Blocs sémantiques actifs |
py / yaml / js / … | Bloc code coloré |
Les syntaxes de médias sont détaillées dans Sons, images et vidéos.
Éléments inline interactifs
Les doubles accolades servent aussi à rendre un mot, une phrase ou une image interactive :
texte: - "La {{porte:?Une vieille porte.}} est fermée." - "Touchez le {{levier:@activer_levier}}." - "Posez la {{clé:>cle}} sur la {{porte:$porte}}."
Voir Tooltips interactifs, Éléments cliquables et Glisser-déposer.
Les tuiles et grilles utilisent la syntaxe image étendue : Tuiles et tilemaps.
Réutiliser le texte d'une autre salle
[[SALLE:n]] insère le contenu narratif de la salle numéro n à l'endroit où vous l'écrivez. Pratique pour une description ou une réplique récurrente, écrite une seule fois.
texte: "Le couloir se prolonge.[[SALLE:12]]"
La forme anglaise est [[ROOM:n]]. Les renvois circulaires sont détectés et arrêtés : une salle ne peut pas s'inclure elle-même, directement ou indirectement.
Le renvoi fonctionne sur le web, dans le logiciel et dans un export HTML5. Discord, le Terminal et le PDF affichent le texte référencé sous leur forme linéaire habituelle.
Pour construire une conversation plutôt qu'un simple texte, voir Dialogues et séquences.
Liste des choix dans le texte
[[choix_vertical]] affiche les alias des choix de la salle sur plusieurs lignes. [[choix_horizontal]] les sépare par “ / ”. Les formes anglaises [[choice_vertical]] et [[choice_horizontal]] fonctionnent aussi.
salles: - id: depart texte: | Que souhaitez-vous faire ? [[choix_vertical]] choix: - commande: fouiller vers: coffre - vers: couloir - id: coffre texte: Le coffre. - id: couloir texte: Le couloir.
La liste affiche “fouiller” et “2”. Sans alias, un choix utilise son numéro dans la liste déclarée, utilisable directement ou avec avancer. Les alias modifiés et les choix ajoutés sont pris en compte lors du jeu et dans l'aperçu. Les choix masqués par leurs conditions ne sont pas annoncés ; les numéros des autres choix ne changent pas.
Le générateur de fiction interactive peut ajouter ce texte, des alias numérotés et des boutons de choix. Les textes de sorties directionnelles des labyrinthes et donjons sont, eux, remplacés lors de la génération.
Textes composés et boucles (4.17)
Un groupe peut porter une condition et un style, puis contenir d'autres textes ou boucles. Le style est hérité ; un enfant peut le préciser.
texte: - si: v_visible_v = 1 taille: 23 texte: - pour_chaque: objet dans: sac faire: - texte: t_objet_t
Déclarer ici visible dans vars: et sac dans listes:. Dans un texte ou un HUD, les boucles ne modifient pas les données. Les médias habituels sont admis, sans pause ni interaction ; leur répétition dépend des conditions de l'auteur et des règles de lecture du client.
Écrire les balises de médias dans le scénario : [[t_objet.image_t]] lit une adresse. Une valeur insérée comme t_objet.nom_t reste du texte, même si elle contient des balises. Voir Listes et boucles. Dans l'éditeur, Contenu composé crée ce groupe.
Objets du meuble et inventaire vertical
[[OBJET_DANS:coffre]] insère l'identifiant du premier objet présent dans ce meuble de la salle courante, ou un texte vide si le meuble est vide. La forme anglaise est [[ITEM_IN:coffre]].
[[INVENTAIRE_VERTICAL]] affiche un objet par ligne, avec les identifiants et les quantités regroupées. La forme anglaise est [[INVENTORY_VERTICAL]].
titre: 'Wiki 4.17 : inventaire' salles: - id: atelier texte: | [[INVENTAIRE_VERTICAL]] Premier objet du coffre : [[OBJET_DANS:coffre]] objets: - nom: cle endroit: coffre choix: - commande: prendre_coffre bouton: Prendre effet: commande: prendre_dans coffre vers: atelier
Nom de la salle précédente
[[SALLE_PRECEDENTE]] insère l'identifiant de la salle précédente connue, pas son texte ni son bouton. Avant le premier déplacement, le résultat est vide. Cette balise n'a pas d'alias anglais.
titre: 'Wiki 4.17 : précédent' salles: - id: entree texte: 'Précédente : [[SALLE_PRECEDENTE]]' choix: - bouton: Suite vers: atelier - id: atelier texte: 'Précédente : [[SALLE_PRECEDENTE]]' choix: - bouton: Retour vers: entree
Alignement local et séparations dimensionnées
Sur Web, Desktop et dans l'export HTML, [[align:gauche]]texte[[/align]] aligne un bloc. Les directions sont gauche, centre, droite ou left, center, right. Une variable textuelle comme t_cote_t peut donner la direction. Fermez le bloc avec [[/align]].
[[split]] sépare des zones. [[split:40]] réserve 40 % à la zone précédente ; le reste va à la suivante. La séparation et l'alignement fonctionnent aussi dans les encadrés HUD.
titre: 'Wiki 4.17 : alignement' vars_texte: cote: droite salles: - id: atelier texte: | [[align:gauche]]Gauche.[[/align]] [[align:centre]]Centre.[[/align]] [[align:t_cote_t]]Droite.[[/align]] [[split:40]] Seconde zone. choix: - commande: rester bouton: Rester vers: atelier
