Table des matières

ParserContenu.php




synthèse des éléments (balises, options, blocs spéciaux, etc.) que le script est capable d’interpréter dans le fichier de données à charger:




Options en première ligne




Syntaxe :
[options: option1, option2, …]

Options disponibles :

hide_comments (masque la section des commentaires)

hide_reading_time (masque l’affichage du temps de lecture estimé)

hide_image (masque l’image affichée en haut)

Blocs de code avec délimiteurs « ``` »



Syntaxe :
Une ligne contenant exactement ``` démarque le début (ou la fin) d’un bloc de code.

Particularité :
Si la première ligne du bloc commence par // noexec, le code ne sera pas exécutable (et cette ligne est retirée).


Particularité :
Si la première ligne du bloc commence par // reinit, le code sera exécutable (et cette ligne n'est pas retirée) mais le code ne prendra pas en compte le code précédemment exécuté.

**Blocs de code en ligne


avec
Syntaxe :
[code]   .....   [/code]**


Interprétation :
Le contenu est encapsulé dans une balise <pre><code> avec les caractères spéciaux échappés.

Insertion de HTML brut avec…

Syntaxe :
[html] votre code HTML ici [/html]
Interprétation :
Le contenu est préservé et inséré tel quel dans le rendu final (après un encodage temporaire).

Mise en forme BBCode-like



Texte en gras :


Syntaxe : **texte**
Produit : <strong>texte</strong>

interprété : texte

Texte en italique :


Syntaxe : [i]texte[/i]
Produit : <em>texte</em>

interprété : texte


Liens hypertextes :


Simple :
            [url]http://exemple.com[/url] → <a href="http://exemple.com" target="_blank">http://exemple.com</a>

            Avec libellé :
            [url=http://exemple.com]Libellé[/url] → <a href="http://exemple.com" target="_blank">Libellé</a>

            Variante (sans target="_blank") :
            [link=http://exemple.com]Libellé[/link] → <a href="http://exemple.com">Libellé</a>

Ancre pour navigation :


Syntaxe : [anchor]identifiant[/anchor]
Produit : <a id="identifiant"></a>

Insertion d’images :


Syntaxe : [img]URL_de_l'image[/img]
Produit : <img src="URL_de_l'image" alt="Image">

Ligne horizontale :


Syntaxe : ---L
Produit : <hr>

Texte avec couleur (classe CSS « color ») :


Syntaxe : [color]texte[/color]
Produit : <span class="color">texte</span>

interprété : texte


Titres et sections (balises [h1] à [h6])


Syntaxe :
        [ h1 ]Titre[/h1], [ h2 ]Titre[/h2], … jusqu’à [ h6 ]Titre[/h6]
Interprétation :
Le contenu est transformé en balise HTML correspondante avec un identifiant généré automatiquement pour la navigation (table des matières).

Blocs d’encart



Syntaxe :
Deux formes :

En bloc dans le texte via la fonction de conversion (similaire aux autres balises) :
[encart]contenu[/encart]
Ou, en mode bloc (détecté dans la boucle de lecture) :

Ligne contenant exactement [encart] pour débuter
Ligne contenant exactement [/encart] pour terminer

        Interprétation :
        Le contenu est enveloppé dans une <div class="encart">…</div>.
[encart]contenu[/encart]
contenu

Blocs « canvas » pour affichage de canevas interactifs



Syntaxe :

A condition que le moteur CIA soit chargé dans le premier canvas

Sans dimensions : [canvas]script_canvas[/canvas]

Avec dimensions personnalisées : [canvas-largeur-hauteur]script_canvas[/canvas]

Exemple : [canvas-500-300]monScript.js[/canvas]

Les dimensions peuvent être en pixels (nombre seul) ou en pourcentage (avec le symbole %).

Texte normal



Tout le reste est traité comme du texte simple, avec conversion des retours à la ligne en <br> (grâce à nl2br).

Chaque balise est interprétée dans l’ordre suivant :

D’abord, les blocs spécifiques (options, canvas, code avec ``` et encart … /encart gérés dans la boucle de lecture),

Puis, pour le reste, la fonction convertirBalises() applique les transformations BBCode-like et les autres remplacements.

En combinant ces éléments, le fichier data.txt peut afficher du texte formaté, des blocs de code (exécutables ou non), insérer du HTML brut, ajouter des images, liens, titres et des canevas interactifs appelés par le moteur de CIA.


🧙️ Fonctionnement magique des balises [canvas]monFichier.js[/canvas]


🔧 But :

Permet d’insérer un canvas dynamique avec du JavaScript custom en écrivant simplement une balise [canvas]nom.js[/canvas] dans le texte source.
🧩 Comment ça marche :

Le parser PHP repère la balise [canvas]monScript.js[/canvas]

Il génère dynamiquement une balise <canvas id="canvas_monScript"> dans le HTML

Puis il inclut un <script src="monScript.js"></script> associé, à condition que le fichier JS existe

Le script JS vérifie que le canvas correspondant est bien présent (_root["canvas_monScript"]) avant de s’exécuter

📝 Exemple :

Dans le fichier source texte : [canvas]404.js[/canvas]

➡️ Résultat HTML généré (simplifié) :

<canvas id="canvas_404"></canvas>
<script src="404.js"></script>

⚠️ Rappels utiles :

Le nom du canvas est préfixé avec canvas_ → id="canvas_404"

Le script JS doit tester si le canvas est bien défini :
if (_root["canvas_404"]) { ... }

Le JS peut utiliser ENV.CanvasManager.getRoot("canvas_404") pour interagir proprement avec le canvas

Toute logique JS avancée (Matrix, effets, etc.) est déportée dans le fichier .js, donc maintenable

✅ Avantages :

Hyper modulaire : un canvas = un fichier JS = une balise

Lisible même pour les humains

Plug-and-play dans le contenu

Évite les injections script dans le texte brut