feat(privacy+extension): publier la page /privacy et préparer les builds Chrome/Firefox Store
- Nouvelle page /privacy bilingue (FR/EN) avec sélection par Accept-Language
ou ?lang=, sections complètes (données collectées, IA/BYOK, RGPD, sécurité,
contact). Style sombre aligné sur la landing (x.ai premium).
- Liens footer landing.footer.legal.* mis à jour vers /privacy dans les 15 locales.
- Extension Web Clipper rendue cross-browser :
* background.js détecte chrome.sidePanel vs browser.sidebarAction
* sidepanel.js ajoute un shim chrome<->browser pour Firefox
* manifest.json inclut sidebar_action + browser_specific_settings.gecko
+ optional_host_permissions (Chrome les ignore)
- Script scripts/build-firefox.mjs pour produire un .xpi signé pour AMO,
symétrique de build-chrome-store.mjs. Exclusion mutuelle des artefacts
Chrome/Firefox pour éviter la cross-contamination.
- Branding corrigé : 176 occurrences de 'Momento' -> 'Memento' dans le
bundle de traductions embarqué.
- Version bumpée 0.3.1 -> 0.4.0.
This commit is contained in:
@@ -10,12 +10,22 @@ Fichiers : `extension/_locales/<lang>/messages.json`. Régénération : `node ex
|
||||
|
||||
## Installation (dev)
|
||||
|
||||
1. Chrome → `chrome://extensions`
|
||||
### Chrome
|
||||
1. `chrome://extensions`
|
||||
2. **Mode développeur** → **Charger l’extension non empaquetée** → dossier `memento-note/extension`
|
||||
3. Épingle l’icône Memento
|
||||
|
||||
> Chrome **114+** requis (Side Panel API).
|
||||
|
||||
### Firefox
|
||||
```bash
|
||||
# Avec web-ext (https://extensionworkshop.com/)
|
||||
npx web-ext run --source-dir memento-note/extension
|
||||
```
|
||||
Ou via `about:debugging` → **Ce Firefox** → **Charger un module temporaire** → sélectionner `manifest.json`.
|
||||
|
||||
> Firefox **115+** requis (MV3 + sidebarAction).
|
||||
|
||||
## Instance Memento
|
||||
|
||||
- **Dev** : icône ⚙ → URL (`http://localhost:3000` ou IP LAN) → **Appliquer & reconnecter**
|
||||
@@ -45,6 +55,30 @@ Fichiers : `extension/_locales/<lang>/messages.json`. Régénération : `node ex
|
||||
|
||||
Détection automatique `dir` / `lang` (ex. BBC Persian), aperçu RTL avec Vazirmatn.
|
||||
|
||||
## Builds production
|
||||
|
||||
Deux scripts produisent des paquets prêts à publier :
|
||||
|
||||
```bash
|
||||
# Chrome Web Store (zip)
|
||||
node extension/scripts/build-chrome-store.mjs
|
||||
# → memento-note/extension/memento-web-clipper-chrome-store.zip (~44 Ko, 27 fichiers)
|
||||
|
||||
# Firefox Add-ons (xpi)
|
||||
node extension/scripts/build-firefox.mjs
|
||||
# → memento-note/extension/memento-web-clipper-firefox.xpi (~44 Ko, 27 fichiers)
|
||||
```
|
||||
|
||||
Chaque build :
|
||||
- Verrouille `ALLOW_INSTANCE_CONFIG = false` (URL prod en dur)
|
||||
- Restreint les `host_permissions` à `https://memento-note.com/*`
|
||||
- Génère les PNG d'icônes depuis `public/icons/icon-{192,512}.svg`
|
||||
- Exclut les fichiers internes (`i18n/`, `diagnose.js`, `test-sidepanel.html`, etc.)
|
||||
|
||||
Différences manifest :
|
||||
- **Chrome** : `side_panel` (Side Panel API Chrome 114+)
|
||||
- **Firefox** : `sidebar_action` + `browser_specific_settings.gecko` (Firefox 115+)
|
||||
|
||||
## APIs
|
||||
|
||||
- `GET /api/clip/notebooks`
|
||||
|
||||
Reference in New Issue
Block a user