Au même niveau que l'exécutable (index), un dossier "data" contenant un dossier "hosts" qui contient les domaines inversés gérés par le moteur, par exemple:
Par la suite on se situera dans le contexte d'un domaine particulier.
Les fichiers .page constituent le format de rédaction du serveur. Les retours à la ligne simples forment des paragraphes standards, tandis que les balises spécifiques permettent d'enrichir la mise en page.
Avant le premier texte ou la première balise de la page, vous pouvez déclarer des variables sous la forme CLE=VALEUR :
TITLE=Mon Titre de Page PAGEBGCOLOR=#f9f9f9Si TITLE n'est pas défini dans l'en-tête, le moteur utilise automatiquement le texte de la première balise title rencontrée.
Le moteur interprète à la volée un ensemble de balises (tags) principalement présentes sous les formes suivantes :
<tag:paramètre:> Par exemple: <title:Mon Titre:>ou
<tag:> contenu <:tag> Par exemple: <code:> func blabla () { } <:code>ou
<tag:> PARAM1=VALEUR1 PARAM2=VALEUR2 <:tag> Par exemple: <link:> TITLE=Mon lien HREF=https://www.monlien.com SYNOPSIS=Quel beau lien ! <:link>Vous pouvez inclure un autre fichier .page ou un fragment .html à n'importe quel endroit :
<include:menu.html> <include:pied_de_page.page>Le fichier inclus bénéficie lui aussi du système de recherche ascendante et d'héritage.
Prenons par exemple l'aborescence de site suivante :
Le fichier index.html de la page d'accueil de ce site ne contenant que trois lignes :
<include:index.header.html> Lorem ipsum, ad nauseam. <include:index.footer.html>Les balises font référence aux deux fichiers "index.header.html" et "index.footer.html", qui seront inclus respectivement avant et après le lipsum pour former le contenu HTML final.
Ces header et footer pourront par ailleurs être hérités, via le mécanisme que nous allons voir maintenant.
Le serveur repose sur un principe d'héritage arborescent permettant de mutualiser la configuration, les gabarits et les règles d'accès sans duplication.
Les fichiers de réglages suivent une cascade descendante, de la racine du site vers le sous-dossier demandé. Pour une requête vers /articles/tech/index.html, le moteur charge et fusionne successivement :
1. /index.settings (racine)
2. /articles/index.settings
3. /articles/tech/index.settings
Chaque niveau enfant enrichit ou surcharge les variables héritées du niveau parent.
Exemple de contenu d'un fichier .settings :
TITLE=Mon Site Web THEME=bleu ARTICLEBGCOLOR=#eef4ff PAGEBGCOLOR=#ffffffInsertion dynamique de variables :
Toute variable définie dans un .settings ou en haut d'une page peut être injectée dans le HTML ou la page via la syntaxe de substitution :
<=TITRE_VARIABLE|valeur_par_defaut>Il existe également une variable spéciale de débogage qui affiche toutes les variables actives :
<=DEBUG.SETTINGS>Lorsqu'un fichier (page, image, script ou gabarit) est demandé, le moteur effectue une recherche ascendante depuis le dossier courant jusqu'à la racine :
1. Recherche dans le sous-dossier demandé.
2. Si non trouvé, recherche dans le dossier parent immédiat, et ainsi de suite jusqu'à la racine.
3. Si toujours non trouvé et qu'un paramètre THEME est actif, recherche dans le répertoire du thème correspondant.
4. Si le fichier demandé est index.html et qu'il n'existe nulle part, le serveur utilise le fichier index.html embarqué par défaut dans le binaire.
De manière générale, l'héritage se fait en réponse à une requête en cherchant d'abord dans le répertoire cible de la requête, puis en remontant la chaîne des dossiers parents jusqu'au dossier racine du site, puis dans le dossier du thème éventuel, et enfin dans les assets de l'application serveur elle-même :

Ce mécanisme permet par exemple de définir un seul index.html commun à la racine pour tout le site, tout en laissant chaque sous-dossier fournir son propre index.page ou ses propres médias.
Au sein des paragraphes ou des notes, vous pouvez utiliser les enrichissements typographiques suivants :
- Mettre en gras :
<b:>texte en gras<:b>- Mettre en italique :
<i:>texte en italique<:i>- Souligner du texte :
<u:>texte souligné<:u>- Insérer un espacement vertical personnalisé :
<space:25px:>- Lien externe (ouvert dans un nouvel onglet) :
[Nom du lien]((https://example.com))- Lien interne :
[Nom de la page](/mon-dossier/)- URL directe cliquable :
<https://example.com>Trois niveaux de titres sont disponibles, sous forme simple sur une ligne ou sous forme de bloc encadré :
Titre principal (niveau 1) :
<title:Mon Titre Principal:> ou <title:>Mon Titre Principal<:title>Chapitre (niveau 2) :
<chapter:Mon Chapitre:> ou <chapter:>Mon Chapitre<:chapter>Section (niveau 3) :
<section:Ma Section:> ou <section:>Ma Section<:section>Bloc d'encadré ou note :
<note:Ceci est une note sur une ligne.:>ou
<note:> Ceci est une note multiligne. Les styles et liens y sont interprétés. <:note>Blocs de code et sorties console (texte préformaté non interprété, caractères échappés) :
<code:> fmt.Println("Code source") <:code> <cmd:> ls -la /var/www <:cmd> <conf:> PORT=8080 HOST=localhost <:conf> <output:> 200 OK - Fichier servi avec succès <:output>