fix(rgpd): polices auto-hébergées — la doc ne transmet plus l'IP du visiteur à Google
`theme.font: {text, code}` faisait injecter par Material, dans le <head> de
chacune des 316 pages, un preconnect vers fonts.gstatic.com et une feuille
depuis fonts.googleapis.com (Sans 300/300i/400/400i/700/700i + Mono
400/400i/700/700i). Chaque visite transmettait donc l'IP du visiteur à Google
AVANT tout consentement.
Ce qui rendait ça gênant n'est pas la règle en soi, c'est l'asymétrie : le site
vitrine a fait exactement l'inverse en T10, délibérément, pour cette raison
(jurisprudence LG München 2022, doctrine CNIL) et pour ne pas contredire « vos
données ne sortent pas de chez vous ». La doc affichait donc le contraire de
l'engagement que le produit met en avant, sur le même nom de domaine.
Correctif : `theme.font: false` retire les deux balises ; les 16 woff2 viennent
du dépôt du site — mêmes fichiers, mêmes unicode-range (latin + latin-ext pour
les accents), déjà éprouvés en production depuis juin. Les 16 blocs @font-face
sont repris tels quels plutôt que réécrits, avec les chemins adaptés. Material
lit `--md-text-font` / `--md-code-font`, qu'extra.css définit.
312 Ko d'actifs, servis localement.
⚠️ LES ITALIQUES SONT DÉSORMAIS SYNTHÉTISÉES, et c'est la contrepartie à
connaître. Google servait 4 fontes italiques que nous n'avons pas (aucun fichier
italique dans le dépôt du site, aucune IBM Plex installée sur la machine de
build) : le navigateur incline donc la romaine. Visible sur les intertitres en
italique des blocs générés — `_Einstellungen:_`, `_Gemessene Größen:_`. Pour y
remédier : récupérer les woff2 italiques depuis le dépôt officiel IBM/plex (OFL)
et ajouter les @font-face correspondants. La méthode est celle déjà documentée
au T10 du site, et je ne l'ai pas prise d'office — c'est un ajout de binaires
depuis Internet.
Vérifié sur le site construit, et pas seulement sur le <head> :
· 0 url() externe dans toute la CSS
· 0 preconnect
· 0 ressource (link/script/img/iframe) chargée depuis un tiers — le seul hôte
cité est docs.etm-powersync.fr lui-même, par les <link rel="canonical">
· les 16 woff2 présents dans le build, 16 références, 0 chemin cassé
· build --strict sans avertissement
La seule mention restante de Google dans le dépôt est le commentaire d'extra.css
qui explique pourquoi elle n'y est plus.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0ae23ce2db
commit
95a9edda5a
BIN
docs/assets/fonts/ibm-plex-mono-latin-400.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-mono-latin-400.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-mono-latin-500.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-mono-latin-500.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-mono-latin-600.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-mono-latin-600.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-mono-latin-ext-400.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-mono-latin-ext-400.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-mono-latin-ext-500.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-mono-latin-ext-500.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-mono-latin-ext-600.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-mono-latin-ext-600.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-sans-latin-300.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-sans-latin-300.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-sans-latin-400.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-sans-latin-400.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-sans-latin-500.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-sans-latin-500.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-sans-latin-600.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-sans-latin-600.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-sans-latin-700.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-sans-latin-700.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-sans-latin-ext-300.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-sans-latin-ext-300.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-sans-latin-ext-400.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-sans-latin-ext-400.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-sans-latin-ext-500.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-sans-latin-ext-500.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-sans-latin-ext-600.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-sans-latin-ext-600.woff2
Normal file
Binary file not shown.
BIN
docs/assets/fonts/ibm-plex-sans-latin-ext-700.woff2
Normal file
BIN
docs/assets/fonts/ibm-plex-sans-latin-ext-700.woff2
Normal file
Binary file not shown.
@ -1,3 +1,49 @@
|
||||
|
||||
/* ══════════════════════════════════════════════════════════════════════════
|
||||
POLICES AUTO-HÉBERGÉES — IBM Plex (2026-10-13)
|
||||
|
||||
Material injectait `theme.font: {text, code}`, ce qui ajoutait au <head> un
|
||||
preconnect vers fonts.gstatic.com et une feuille depuis fonts.googleapis.com.
|
||||
Chaque visite transmettait donc l'IP du visiteur à Google AVANT tout
|
||||
consentement — et le site vitrine avait fait exactement l'inverse en T10,
|
||||
délibérément, pour cette raison (jurisprudence LG München 2022, doctrine
|
||||
CNIL) et pour ne pas contredire « vos données ne sortent pas de chez vous ».
|
||||
La doc affichait donc le contraire de l'engagement du produit.
|
||||
|
||||
`theme.font: false` dans mkdocs.yml supprime les deux balises ; les 16 woff2
|
||||
viennent du dépôt du site (mêmes fichiers, mêmes unicode-range, déjà éprouvés
|
||||
en production depuis juin).
|
||||
|
||||
⚠️ LES ITALIQUES SONT SYNTHÉTISÉES. Google servait 4 fontes italiques
|
||||
(Sans 300i/400i/700i, Mono 400i) que nous n'avons pas : le navigateur incline
|
||||
donc la romaine. C'est visible sur `_Einstellungen:_` et les intertitres en
|
||||
italique des blocs générés. Pour y remédier, récupérer les woff2 italiques
|
||||
depuis le dépôt officiel IBM/plex (OFL) et ajouter les @font-face
|
||||
correspondants — méthode déjà documentée au T10 du site.
|
||||
══════════════════════════════════════════════════════════════════════════ */
|
||||
|
||||
:root {
|
||||
--md-text-font: "IBM Plex Sans";
|
||||
--md-code-font: "IBM Plex Mono";
|
||||
}
|
||||
|
||||
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:300;font-display:swap;src:url('../assets/fonts/ibm-plex-sans-latin-ext-300.woff2') format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
|
||||
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/ibm-plex-sans-latin-ext-400.woff2') format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
|
||||
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/ibm-plex-sans-latin-ext-500.woff2') format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
|
||||
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/ibm-plex-sans-latin-ext-600.woff2') format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
|
||||
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/ibm-plex-sans-latin-ext-700.woff2') format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
|
||||
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:300;font-display:swap;src:url('../assets/fonts/ibm-plex-sans-latin-300.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||||
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/ibm-plex-sans-latin-400.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||||
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/ibm-plex-sans-latin-500.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||||
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/ibm-plex-sans-latin-600.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||||
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/ibm-plex-sans-latin-700.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||||
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/ibm-plex-mono-latin-ext-400.woff2') format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
|
||||
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/ibm-plex-mono-latin-ext-500.woff2') format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
|
||||
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/ibm-plex-mono-latin-ext-600.woff2') format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
|
||||
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/ibm-plex-mono-latin-400.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||||
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/ibm-plex-mono-latin-500.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||||
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/ibm-plex-mono-latin-600.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
|
||||
|
||||
/* ETM PowerSync — surcharge couleurs de marque sur Material (scheme slate) */
|
||||
[data-md-color-scheme="slate"] {
|
||||
--md-primary-fg-color: #31a3dd; /* cyan ETM */
|
||||
|
||||
@ -14,9 +14,11 @@ edit_uri: edit/main/docs/
|
||||
theme:
|
||||
name: material
|
||||
language: fr
|
||||
font:
|
||||
text: IBM Plex Sans
|
||||
code: IBM Plex Mono
|
||||
# `false` supprime le preconnect fonts.gstatic.com et la feuille
|
||||
# fonts.googleapis.com que Material injecte sinon dans le <head>.
|
||||
# Les polices sont auto-hébergées : voir les @font-face de
|
||||
# docs/stylesheets/extra.css et les woff2 de docs/assets/fonts/.
|
||||
font: false
|
||||
palette:
|
||||
scheme: slate # thème sombre, raccord avec la charte ETM
|
||||
primary: custom # couleurs réelles définies dans stylesheets/extra.css
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user