Overview

Artifact ID: 75551c0bf77e6136876baba409ef033b4e118a6194a3ae5558ce2d6e5bebac23
Page Name:Dev/Web
Date: 2021-05-01 23:03:00
Original User: bohwaz
Mimetype:text/x-markdown
Parent: 61e85387843f07ce9fa67fb796408cfa2cd7de34a7e50fc87984b90c4f900543 (diff)
Next 3d42d9db41cbf47abb31496fbcadb9f911b95b6bed26cb3b26a32714a8c56e9a
Content

Format de stockage des pages web

Les pages web sont stockées sous la forme d'un répertoire contenant :

  • un fichier "contenu" (actuellement nommé index.txt)
  • éventuellement des fichiers joints
  • éventuellement des sous-répertoires (= autres pages web)

Ce format s'inspire de ce qui est fait par les CMS Grav et Kirby. Ainsi il est possible de modifier le site web avec un simple éditeur de texte :)

Format du fichier contenu

Ce fichier est séparé en plusieurs blocs. Chaque bloc est séparé d'un autre par une ligne contenant seulement 4 tirets, précédée d'une ligne vide, et suivie d'une autre ligne vide (\n\n----\n\n).

Pour éviter un conflit avec la syntaxe markdown ou autre contenus, les lignes contenant seulement quatre tirets dans les contenus sont échappées : elles sont précédées d'un antislash.

Chaque bloc commence par des entêtes semblables aux entêtes HTTP : sur chaque ligne une clé, suivie de deux points :, d'un espace et de la valeur.

Après les entêtes suivent deux retours de ligne (\n\n) et le contenu du bloc, s'il y a un contenu. S'il n'y a pas de contenu, les entêtes sont suivis d'un séparateur de bloc.

Le premier bloc contient obligatoirement les méta-données du document, sous forme d'entêtes sans contenu.

Méta-données du document

Title: Nos activités
Published: 2012-05-23 17:35:00
Status: Online
  • Status indique le statut de la page, celui-ci peut être online (en ligne) ou draft (brouillon)
  • Published indique la date de publication au format Y-m-d H:i:s
  • Title représente le titre de la page

Blocs

La page est conçue comme une suite de blocs

Un bloc de contenu a forcément un entête Type. Ce type peut être :

  • columns : un ensemble de colonnes (le nombre est indiqué dans l'entête Columns)
  • column : une colonne
  • markdown : du texte formatté avec Markdown
  • skriv : du texte formatté avec SkrivML
  • gallery : une galerie de photos ou de fichiers
  • image : une image
  • code : du code à afficher tel quel
  • heading : un titre
  • quote : une citation
  • video : une vidéo externe

Par commodité on considère que la page est déjà dans un bloc de type columns (avec une seule colonne), et donc tout bloc à la racine de la page doit être de type column.

À la suite d'un bloc column on peut trouver n'importe quel type de bloc. Si ce n'est pas un bloc de type column, ils seront ajoutés les uns à la suite des autres dans la colonne précédente.

Exemple de bloc simple

Imaginons que notre page ne soit composée que d'un bloc de type markdown, le template contiendra alors (sans compter les méta-données de la page) :

Type: column

----

Type: markdown

Hello ''world''!

De manière visuelle pour représenter les blocs cela donnera :

Exemple de bloc avec deux colonnes

Nous voulons avoir deux colonnes sur notre page, la première avec un titre et un texte, et la seconde avec une image. Nous créons donc un bloc de type columns qui contient deux blocs de type column, et chacun de ces blocs contient des blocs de contenu.

Type: columns

----

Type: column

----

Type: heading

Notre association

----

Type: markdown

Notre association est fabriquée à base de nounours tout doux.

----

Type: column

----

Type: image

Logo_association.png