Overview

Artifact ID: 6b8c3c423353823b6858909198190c555d216ed8ca21dafbffc9d664778d7710
Page Name:Dev/Web
Date: 2021-05-01 21:58:55
Original User: bohwaz
Mimetype:text/x-markdown
Parent: 43d3263102cde0eb06156fb5da9d441a1e76e601ac816437ad02618cc8f29e0b (diff)
Next 3a4455d3351bebf6f210eee0cdb103b3299a399108fa77f0e3823b3bb50096a8
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).

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
  • list : une liste à puces
  • 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 :