Documentation des tags
Tags sur une ligne
TITLE
- Usage: Ligne unique format `TITLE:Texte:TITLE`.
- Effet: Rend le titre principal de la page en grand format (style intégré).
- Paramètres: aucun (le texte entre les marqueurs est le contenu).
CHAPTER
- Usage: Ligne unique format `CHAPTER:Texte:CHAPTER`.
- Effet: Rend un en-tête de niveau chapitre (style intégré, taille plus petite que TITLE).
- Paramètres: aucun (le texte entre les marqueurs est le contenu).
SECTION
- Usage: Ligne unique format `SECTION:Texte:SECTION`.
- Effet: Rend un en-tête de section (style intégré).
- Paramètres: aucun (le texte entre les marqueurs est le contenu).
Tags multi-lignes (blocs)
ARTICLES
- Usage: Bloc ouvert par `ARTICLES:` et fermé par une ligne commençant par `:`.
- Valeurs (lignes de contenu): liste de répertoires relatifs ou motifs (`dir`, `dir/*`), résolus depuis la page courante.
- Paramètres (KEY=VAL dans le bloc):
- `TITLE` : titre affiché au-dessus de la liste d'articles.
- `SYNOPSIS` : texte résumé affiché sous le titre.
- `ALIGN` : `LEFT` (par défaut) ou `CENTER` — aligne la présentation.
- Comportement: pour chaque répertoire ciblé, charge `index.settings` et `index.page` de l'article, affiche image `picture.jpg` si présente, et applique restrictions de droits via `librights` (les répertoires privés sont cachés si l'utilisateur non autorisé).
IMAGES
- Usage: Bloc `IMAGES:` ... `:`
- Valeurs: liste d'images ou motifs, chaque ligne peut être `filename` ou `filename|Titre`.
- Paramètres:
- `SORT` : `DESC` pour trier décroissant ; défaut tri asc.
- Comportement: génère une grille de vignettes; les fichiers autorisés sont `.jpg`, `.jpeg`, `.gif`, `.png`. Les chemins sont résolus et les titres (après `|`) affichés sous la vignette.
IMAGE
- Usage: Bloc `IMAGE:` ... `:`
- Valeurs: liste d'images (utilise la première entrée pour l'affichage principal).
- Paramètres:
- `TITLE` : titre facultatif affiché sous l'image (peut aussi être passé en `filename|Titre`).
- Comportement: affiche une seule image (avec vérification d'extension) et son titre si fourni.
SOUNDS
- Usage: Bloc `SOUNDS:` ... `:`
- Valeurs: noms de fichiers audio (ou motifs), parsés par la fonction de filelist.
- Paramètres: aucun dédié.
- Comportement: pour chaque fichier lu, insère un lecteur `
NOTE
- Usage: Bloc `NOTE:` ... `:`
- Valeurs: contenu textuel (lignes).
- Paramètres: aucun.
- Comportement: rend le contenu en paragraphe avec classe `index-page-block-note`.
TREE
- Usage: Bloc `TREE:` ... `:`
- Valeurs: nom de répertoire racine à lister (généralement unique ligne avec le nom du répertoire).
- Paramètres: aucun.
- Comportement: génère une arborescence HTML récursive du répertoire spécifié, en résolvant le chemin relatif depuis la page.
SCREEN
- Usage: Bloc `SCREEN:` ... `:` (se termine par une ligne commençant par `:`)
- Paramètres (lignes KEY=VALUE à l'intérieur du bloc):
- `IMAGE` : fichier image à utiliser (si absent, cherche `picture.jpg` dans le répertoire).
- `TITLE` : titre affiché au-dessus du canvas.
- `GATE` : peut apparaître plusieurs fois; format supporté:
- `GATE=TYPE|COORDS|TARGET` (séparateur `|` préférable pour permettre des virgules dans `COORDS`), ou
- `GATE=TYPE,coords...,TARGET` (ancienne compatibilité, virgules).
- `TYPE` : `RECT`, `CIRCLE`, `POLY`.
- `COORDS` : pour `RECT` => `x1,y1,x2,y2`; `CIRCLE` => `cx,cy,r`; `POLY` => `x1,y1,x2,y2,...`.
- `TARGET` : URL ou chemin relatif; si relatif, résolu vers une URL absolue basée sur la page courante.
- Comportement: rend un `
CODE
- Usage: Bloc multi-ligne `CODE:` ... `:CODE` (le contenu interne est encodé en base64 lors du parsing).
- Paramètres: aucun KEY=VALUE standard (les lignes internes sont conservées).
- Comportement: contenu décodé base64 puis rendu dans un paragraphe ayant la classe `index-page-block-code` (échappe HTML).
CONF
- Usage: Comme `CODE`, bloc `CONF:` ... `:CONF` ; contenu base64-encodé.
- Comportement: décodé et rendu dans `index-page-block-conf`, avec échappement HTML.
CMD
- Usage: `CMD:` ... `:CMD` (base64-encodé au parsing).
- Comportement: décodé et rendu classé `index-page-block-cmd`.
OUTPUT
- Usage: `OUTPUT:` ... `:OUTPUT` (base64-encodé).
- Comportement: décodé et rendu classé `index-page-block-output`.
Tags inline
/
- Syntaxe inline: ouvre `` et ferme `` (le moteur convertit `` → `` et `` → ``).
- Usage: texte en gras à l'intérieur d'une ligne/paragraph.
/
- Syntaxe inline: `` ... `` → ` ... `.
- Usage: texte souligné.
/
- Syntaxe inline: `` ... `` → ` ... `.
- Usage: texte en italique.
Comportements généraux et parsing
Parsing et conventions
- Les blocs sont détectés par une ligne en majuscules terminée par `:` (ex. `ARTICLES:`). La fin d'un bloc est une ligne commençant par `:` (seule la première colonne suffit).
- Les lignes `KEY=VALUE` à l'intérieur d'un bloc sont interprétées comme paramètres (sauf pour certains tags qui traitent différemment, ex. `CODE`/`CMD`/`CONF`/`OUTPUT`).
- Les tags `CODE`, `CMD`, `CONF`, `OUTPUT` sont convertis temporairement en base64 lors du parsing pour préserver leur contenu ; au rendu ils sont décodés puis échappés.
- Les lignes hors blocs sont rendues en paragraphes. Les motifs de lien et les short-tags ``, `
- Échapper un caractère par `` est supporté (le backslash est retiré et le caractère suivant pris littéralement).
Authentification et droits d'accès
- Objectif (pour le concepteur de site): décrire comment rendre un dossier privé et donner l'accès à des utilisateurs précis, sans entrer dans les détails d'implémentation du moteur.
- Rendre un dossier privé :
- Renommez le dossier pour qu'il commence par un underscore `_` (ex. `_membres`, `_private`).
- Tout contenu placé dans ce dossier ou dans ses sous-dossiers héritera du caractère "privé" aux fins d'affichage.
- Déclarer les utilisateurs autorisés :
- Placez dans le dossier privé un fichier nommé `index.rights` contenant la liste des comptes autorisés.
- Format du fichier `index.rights` : une entrée par ligne.
- `username` — autorise `username` avec le rôle par défaut.
- `username
- Exemples de contenu `index.rights` :
- alice
- bob admin
- Héritage des droits :
- Si vous placez des dossiers `_private` à des niveaux supérieurs, leurs fichiers `index.rights` s'appliquent également aux sous-dossiers ; le système fusionne les listes d'utilisateurs trouvées le long du chemin.
- Comportement visible côté site :
- Les pages ou listes (comme `ARTICLES`) n'afficheront pas les répertoires privés aux visiteurs non identifiés.
- Pour autoriser l'accès à un utilisateur, ajoutez son nom d'utilisateur à `index.rights` dans le dossier privé concerné (ou dans un ancêtre `_`-préfixé selon le besoin d'héritage).
- Bonnes pratiques pour le concepteur :
- Utilisez des noms de dossiers clairs (`_members`, `_staff`) pour distinguer les zones privées.
- Centralisez les droits si plusieurs sous-dossiers partagent les mêmes utilisateurs (placer un seul `index.rights` dans un dossier parent `_` pour éviter la duplication).
- Documentez les noms d'utilisateur que vous inscrivez (source d'authentification) pour éviter les erreurs de correspondance.
- Testez avec un compte invité pour vérifier que le contenu privé est bien masqué.
REMARQUE: Cette section décrit la manière de configurer l'accès au niveau du contenu; la gestion des sessions et l'authentification (connexion des utilisateurs) se font ailleurs dans la configuration du site.
Exemples rapides d'utilisation
Exemple-1
- Exemple minimal titre + chapitre:
- TITLE:Mon titre de page:TITLE
- CHAPTER:Introduction:CHAPTER
- SECTION:But:SECTION
- Ceci est un paragraphe d'introduction.
Exemple-2-Images
- IMAGES:
- pic1.jpg|Vignette 1
- gallery/*
- SORT=DESC
- :
Exemple-3-Screen
- SCREEN:
- IMAGE=ma_capture.jpg
- TITLE=Interface principale
- GATE=RECT|10,10,200,150|/page/cible
- GATE=CIRCLE|300,120,40|http://exemple.com
- :