Fait avec Chinaski

Créer & Cloner des Thèmes

Créer un theme revient soit à en importer un (une archive de templates) soit à cloner un existant pour le modifier. Les deux atterrissent sous Themes dans l'admin. Cette page couvre les règles d'import, le flux de clone, et le chemin d'export qui vous donne une passation propre.

Créer un thème par upload

Themes → add prend un nom et un fichier d'archive :

  • Formats acceptés : .tar.gz, .tgz ou .zip, jusqu'à 5 Mo.
  • L'ensemble de templates doit inclure les six fichiers requis : _head.tt, _header.tt, _footer.tt, page.tt, post.tt, blog_index.tt. Les fichiers manquants font échouer l'installation avec un flash les nommant chacun.
  • Seuls les fichiers .tt et un _theme.json optionnel sont extraits : les dotfiles sont ignorés ; les préfixes de répertoire des archives s'aplatissent quel que soit le style de packaging.

Scan de sécurité à l'import. Chaque template téléversé est scanné avant que quoi que ce soit n'atterrisse :

  • Les blocks [% PERL / [% RAWPERL sont rejetés d'emblée.
  • Les directives INSERT avec des chemins absolus sont rejetées.
  • Les directives USE qui chargent des modules à capacités système (File, Socket, LWP, etc.) sont rejetées.

Un seul fichier nuisable avorte l'upload entier ; rien de partiel n'est installé. Les tarballs défectueux sont signalés séparément (« not a valid .tar.gz ») des erreurs de fichiers manquants. Les symlinks et hardlinks dans une archive sont ignorés : un vecteur de traversal plutôt qu'une fonctionnalité de thème.

Les installations sont atomiques : les fichiers s'extraient dans un répertoire de staging qui est renommé à sa place, si bien qu'un thème partiellement installé n'apparaît jamais dans la liste des thèmes, même après un échec en cours d'installation. Le thème créé est audité avec un manifeste complet des fichiers (noms et tailles), puis attend que vous l'activiez : l'upload n'auto-active jamais.

Clonage

La liste Themes a un bouton Clone par theme. Donnez-lui un nouveau nom ; vous obtenez :

  • Une copie du répertoire de templates du thème source sous un slug neuf (le nom slugifié).
  • Une nouvelle ligne dans la table des thèmes et une entrée d'audit de manifeste de fichiers (« cloned from …; files=… »).
  • Une redirection vers l'éditeur du nouveau theme.

Garde-fous : le slug default est réservé à la création comme au clone ; les slugs existants en collision (disque ou DB) sont refusés avant toute copie ; un répertoire partiellement copié est retiré en cas d'échec plutôt que laissé mi-installé.

Cloner le thème default produit un répertoire de thème vide: les templates intégrés n'existent pas sur le disque, si bien que partir de default revient exactement à partir de zéro dans un répertoire groupé à vous. Tant qu'un theme ne porte aucune surcharge, le builder retombe sur l'ensemble de templates intégré, donc un clone vierge fonctionne dès l'installation et vous personnalisez au fil de l'eau.

Activer et rendre vivant

Téléverser (ou cloner) ne rend pas un theme vivant : l'activation est une action séparée en un clic sur le theme. Activer, c'est ce que la recherche de templates du build utilise ; le répertoire d'un thème actif non-défaut est consulté en premier, avec les intégrés en repli, si bien que les thèmes partiels sont sûrs à développer (un thème n'a besoin de livrer que les fichiers qu'il change).

Export : packaging de passation

Tout theme s'exporte depuis son écran de détail en un .tar.gz de ses fichiers .tt : utile pour archiver, déplacer un theme entre instances, ou remettre un fichier de thème à un collègue. La route d'export est admin-only ; exporter le default livré sans fichiers personnalisés n'est pas possible (il n'y a pas de copie sur disque à exporter).

L'éditeur

Upload et clone vous amènent tous deux à l'écran de détail du theme : son arborescence de fichiers avec routes d'édition par fichier, aperçus, et la partie génération design-brief (ce workflow vit dans la doc LLM Theme Prompting, pas sur cette page).

Lisez ce site en