Une page web en une ligne. Assez simple pour que ton IA l'écrive sans se tromper, assez précise pour qu'un développeur sache exactement quoi faire. Voici toute la syntaxe, sans petits caractères.
Une page, c'est des zones (en-tête, contenu, pied), et chaque zone est une liste de blocs. Une page peut partir d'une autre et dire seulement ce qui change.
index = entete | enseigne, tarifs | pied
La page index : l'en-tête, puis l'enseigne et les tarifs, puis le pied de page. Les barres séparent les zones, les virgules séparent les blocs.
contact = index - tarifs + rendezvous
La page contact, c'est l'index sans les tarifs, avec un formulaire de rendez-vous. Si l'index change, contact suit.
promo = index ~ enseigne{titre: "-20 % cette semaine"}
La page promo garde tout, mais change le titre de l'enseigne. Juste pour cette page.
Un fichier, site.map, une page par ligne.
nom = …contact = index - tarifsa | b | centete | enseigne | pieda, benseigne, services, tarifs@zones …@zones header | main | footer# …# l'accueil d'abordLes opérations s'appliquent de gauche à droite, chacune précédée d'une espace. Un repère, c'est un type de bloc (tarifs) ou un nom (#avis).
+ blocindex + avis+ bloc^index + bandeau^+ bloc @zoneindex + bandeau @header+ bloc @after:repèreindex + carte @after:services- repèreindex - tarifs~ repère>blocindex ~ enseigne>enseigneNoel~ repère{champ: "…"}index ~ enseigne{titre: "Fermé lundi"}zone=(a, b)index main=(faq, contact)Le point veut toujours dire « pris dans ». Les accolades changent un champ. Le reste suit.
bloc#nomcartes#equipe, cartes#avis{champ: "…"}enseigne{bouton.texte: "Appelle-nous"}kit.blocgarage.enseignenom/:slugservices/:slug = index ~ enseigne>fiche[@][@]fiche[@]Tirées du site démo de Sum. Chacune se lit de gauche à droite.
merci = contact ~ form>message#merci ~ meta{title: "Message reçu", noindex: true}
Après l'envoi : la page contact, avec un message à la place du formulaire, cachée aux moteurs de recherche.
noel = promo ~ hero>heroNeige + sapin$ ~ meta{title: "Horaire des Fêtes"}
La promo, version des Fêtes : une autre bannière, un sapin à la fin, un autre titre. Oui, il y a un bloc sapin.
services/:slug = home ~ hero>fiche[@] - features - #temoignages + form ~ meta[@]
Une page par service : la fiche à la place de la bannière, sans les points forts ni les témoignages, avec un formulaire. Le titre vient du service.
Non. Ton IA écrit les formules, et l'éditeur les réécrit quand tu déplaces un bloc. Cette page sert aux curieux et aux développeurs qui prennent le relais.
Parce qu'une formule ne peut pas briser une mise en page. Elle dit quels blocs vont où ; les blocs, eux, sont déjà éprouvés. C'est court à écrire pour une IA et facile à relire pour un humain.
Sum vérifie chaque formule. Un bloc introuvable, un repère ambigu, une page qui se cite elle-même : l'erreur donne la ligne, et souvent la correction.
Mik Aubut, à Terrebonne, au Québec. Cette page en est la référence publique : version 1.0 du 30 octobre 2026.
Laisse ton courriel : on t'écrit une fois, au lancement. Pas d'infolettre déguisée. Les trois premiers commerces pilotes ont la mise en ligne offerte.