Skip to content

Commit 18dfdef

Browse files
committed
Add Custom theme blog
1 parent 6781bf1 commit 18dfdef

2 files changed

Lines changed: 6 additions & 10 deletions

File tree

content/blog/custom-theme.en.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ date: 2026-06-16
44
author: "Felix Leger"
55
description: "What a full custom vanityURLs theme buys, what it costs, and how to keep the instance upgradeable."
66
tags: ["branding", "customization", "case-study"]
7-
featured: false
87
---
9-
108
I have been [using vanityURLs since 2024](/showcase/f-l-ca/). That is the useful boundary. The engine stays boring and the public surface gets personality.
119

1210
For [f-l.ca](https://f-l.ca/), I wanted something else, the engine stays boring and the public surface feel unmistakably mine.

content/blog/custom-theme.fr.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@ date: 2026-06-16
44
author: "Félix Léger"
55
description: "Ce qu'un thème vanityURLs entièrement personnalisé apporte, ce qu'il coûte, et comment garder l'instance maintenable."
66
tags: ["marque", "personnalisation", "cas-pratique"]
7-
draft: true
87
featured: false
98
---
10-
119
J'utilise [vanityURLs depuis 2024](/fr/showcase/f-l-ca/). C'est la frontière utile. Le moteur reste ennuyeux et la surface publique gagne de la personnalité.
1210

1311
Pour [f-l.ca](https://f-l.ca/), je voulais autre chose : un moteur ennuyeux, mais une surface publique qui me ressemble immédiatement.
@@ -29,15 +27,15 @@ Pour [f-l.ca](https://f-l.ca/), je voulais autre chose : un moteur ennuyeux, mai
2927

3028
Pour le chemin mécanique, consultez [Marque](/fr/docs/reference/brand/) et [Surcharges custom](/fr/docs/reference/custom-overrides/).
3129

32-
## L'URL Est L'Interface
30+
## L'url est l'interface
3331

3432
Mon thème tourne autour d'une idée simple : le lien lui-même devrait être l'objet principal de la page.
3533

3634
Quand quelqu'un tape un slug, la flèche ronde devient l'action.
3735

3836
Quand un chemin est invalide, l'écran _shake_ et montre le chemin au visiteur au lieu de changer de système visuel.
3937

40-
## Le Mode Custom Complet A Un Coût
38+
## Le mode custom complet a un coût
4139

4240
Ce n'est pas le chemin le plus rapide, vous pouvez demander à mon co-mainteneur {{< emoji name="smiling" decorative="true" >}}. Le mode custom complet veut dire que l'instance fournit ses propres pages publiques dans `custom/public`, y compris les variantes anglaises et françaises, les pages de consultation et les pages d'état.
4341

@@ -53,7 +51,7 @@ Cela veut aussi dire que le thème doit se comporter comme du code produit :
5351

5452
Les pages par défaut de vanityURLs absorbent la majorité de cette maintenance. Un thème custom donne plus de contrôle. Il retire aussi quelques garde-fous.
5553

56-
## Garder Les Noms Produit Hors Des Fichiers Custom
54+
## Garder les noms produit hors des fichiers custom
5755

5856
Une frontière que je ne franchirais pas concerne les noms de fichiers. Cette frontière compte au build.
5957

@@ -63,15 +61,15 @@ Le build copie `defaults/public` d'abord, puis superpose `custom/public`.[^overl
6361

6462
La séparation est simple : donner leurs propres noms d'assets aux pages web et d'état custom, et laisser les pages qui restent vanilla utiliser les fichiers `v8s-*` gérés.
6563

66-
## C'est Une Autre Frontière De Confiance
64+
## C'est une autre frontière de confiance
6765

6866
Au 16 juin 2026, la documentation des pages publiques de vanityURLs indique que le HTML custom reçoit un profil CSP compatible et sandboxé, tandis que le CSS, le JavaScript, les images, les polices et les manifests référencés sont servis comme assets normaux.[^csp]
6967

7068
C'est le bon défaut pour des pages copiées ou écrites à la main. Il permet du CSS et du JavaScript même hôte sans accorder la confiance des pages produit.
7169

7270
Il y a un coût. Le JavaScript custom ne devrait pas dépendre des cookies de l'hôte, de `localStorage` côté hôte, ou d'API same-origin protégées quand le sandbox omet `allow-same-origin`. Heureusement, vanityURLs n'utilise pas ces capacités.
7371

74-
## La Marque Vit Dans Les Petits Choix
72+
## La marque vit dans les petits choix
7573

7674
Le travail de marque n'est pas le formulaire de slug. Ça, c'est l'interface.
7775

@@ -85,7 +83,7 @@ Les pages par défaut utilisent le helper produit `v8s-theme.js` pour que les li
8583

8684
Je n'ai pas personnalisé les pages opérateur : `_stats` et `_tests`. Ce ne sont pas des surfaces de marque publiques.
8785

88-
## Dire A La Maintenance Ce Qui Est Intentionnel
86+
## Dire à la maintenance ce qui est intentionnel
8987

9088
Le fichier de maintenance est `custom/v8s-custom-overrides.json`. vanityURLs utilise ce JSON pour que [npm run doctor](/fr/docs/reference/public-pages/#ignorer-doctor-volontairement)[^doctor] et [v8s-fix](/fr/docs/command-line-interface/v8s-fix/) sachent quelles différences custom ne doivent pas être réparées vers `/defaults`.
9189

0 commit comments

Comments
 (0)