index.RiffZone.net

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 `` + script JS qui dessine l'image, gère survols, clics et navigation vers `TARGET` quand une "gate" est cliquée. Les `GATE` sont sérialisées en JSON côté JS.

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 ``, `

` et liens `` sont transformés par le moteur (voir `libpages.go`).

- É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.

- `usernamerole` — (optionnel) associe un rôle lisible (ex. `aliceadmin`). Utiliser une tabulation comme séparateur entre le nom et le rôle.

- 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

- :

Cette page et quelques autres sont propulsées par Index