Module PagesFraza Libre

@fraza/module-pages/v0.3.2

Vos pages, rangées en arbre. Servies à la racine du site.

Une section Pages dans l’admin pour écrire le contenu en blocs, choisir un template et placer chaque page sous son parent. L’adresse publique se construit depuis la chaîne des parents, et le rendu passe par les templates de votre projet.

votre-projet.ca/admin/pages
La liste des pages dans l’admin, rangée en arbre, chaque page sous son parent avec son adresse publiqueLa liste des pages dans l’admin, rangée en arbre, chaque page sous son parent avec son adresse publique
Licence
MIT, Fraza Libre
Adresses
À la racine, depuis la chaîne des parents
Contenu
Éditeur de blocs du core
Visibilité
Publique ou privée, par page

Fonctionnalités

Ce que Pages apporte à votre admin.

Pages en arbre

Chaque page se range sous un parent. La liste de l’admin suit l’arbre, et l’adresse publique se reconstruit depuis la chaîne des parents : /a-propos/equipe.

Contenu en blocs

Le contenu s’édite au BlockEditor du core. Avec le module Médias installé, les blocs image passent par le sélecteur de médias.

Vos templates

Le module ne fournit aucune mise en page : chaque page choisit un template du projet. Vous gardez votre image sans rien forker.

Pages privées

Une page privée reste éditable dans l’admin, mais son adresse publique répond 404. Elle masque aussi toutes ses sous-pages.

Slugs propres

Le slug est normalisé à l’enregistrement et suffixé s’il est déjà pris chez le même parent. L’aperçu de l’URL se met à jour à chaque frappe.

SEO intégré

Avec FRAZA_SEO, l’éditeur gagne une zone SEO et la liste un score par page. Le rendu public produit titre, description, Open Graph et robots.

Hiérarchie

Une adresse qui suit l’arbre, sans jamais casser.

Une page ne stocke qu’un segment d’adresse et un lien vers son parent. Le chemin public est reconstruit à la lecture, en une seule requête. Déplacer une page sous un autre parent change son adresse, et le module vérifie toute la chaîne d’ancêtres avant d’enregistrer.

  • Slug unique par parent, suffixé automatiquement en cas de collision
  • Un parent qui créerait un cycle est refusé
  • Une page qui a des sous-pages ne se supprime pas
  • Les slugs réservés, comme admin ou api, sont refusés à la racine seulement

Le modèle de données en détail →

Pour les développeurs

Ajouter Pages à un projet.

Le module ajoute une table, fraza_pages_page, deux permissions, pages.view et pages.manage, et une entrée Pages à l’admin. Son résolveur s’enregistre au boot à la priorité la plus basse : toute URL qu’aucun autre module ne réclame est tentée comme page, sans rien importer dans le catch-all du start template. Des fonctions serveur lisent les pages publiques sans aller-retour HTTP.

Terminal
$ npm i @fraza/module-pages
$ npx fraza-modules sync
$ npx fraza-db init
.env
FRAZA_MODULE_PAGES=true
FRAZA_SEO=true
Fraza Libre

Gratuit, sous licence MIT.

Pages fait partie de Fraza Libre : usage commercial permis, sans compte ni licence à acheter. Il s’installe depuis npm comme le core.

Questions

Questions fréquentes.

Le module est-il vraiment gratuit, même pour un site commercial ?
Oui. Il fait partie de Fraza Libre, sous licence MIT, et s’installe depuis npmjs sans compte ni configuration.
Puis-je utiliser ma propre mise en page ?
C’est même la seule option : le module n’embarque aucun template. Vous déposez les vôtres dans components/fraza/templates/ et l’éditeur les liste. Le start template fournit le template par défaut.
Une page peut-elle servir d’accueil au site ?
Non. La racine / reste la page d’accueil du projet. Une route statique du projet gagne aussi toujours sur une page de même chemin.
Je reprends un ancien site. Puis-je garder les dates d’origine ?
Oui. La date de création se modifie dans l’éditeur, dans le passé uniquement, pour antidater une page importée.

Autres modules gratuits