You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -56,7 +58,7 @@ Si vous utilisez ce dépôt, je vous recommande de mettre le badge suivant dans
56
58
- ⭐ [Nuveauté !] Rechargement automatique à chaud ! Chaque fois que le code source est modifié, il est automatiquement compilé et rechargé. [Voir ici→]((#auto-hot-reload)
57
59
- Nombreux exemples dans `src/modules/examples.ts` ; ils couvrent la plupart des usages des APIs habituellement utilisées dans les extensions (en utilisant [zotero-plugin-toolkit](https://github.com/windingwind/zotero-plugin-toolkit));
58
60
- Support de TypeScript :
59
-
- Prise en charge complète de la définition des types pour l'ensemble du projet Zotero, qui est écrit en JavaScript (avec les [zotero-types](https://github.com/windingwind/zotero-types));
61
+
- Prise en charge complète de la définition des types pour l'ensemble du projet Zotero, qui est écrit en JavaScript (avec les [zotero-types](https://github.com/windingwind/zotero-types));
60
62
- Variables globales et configuration de l'environnement ;
61
63
- Gestion des workflows pour le développement, la finalisation et la publication des extensions :
62
64
-- Génére / met à jour automatiquement l'id/version de l'extension, met à jour les configurations, et définit les variables d'environnement (`development` / `production`);
@@ -68,7 +70,7 @@ Si vous utilisez ce dépôt, je vous recommande de mettre le badge suivant dans
68
70
69
71
Ce dépot fournit des exemples pour les API [zotero-plugin-toolkit](https://github.com/windingwind/zotero-plugin-toolkit).
70
72
71
-
Recherchez `@example` dans `src/examples.ts`. Les exemples sont appelés dans `src/hooks.ts`.
73
+
Recherchez `@example` dans `src/examples.ts`. Les exemples sont appelés dans `src/hooks.ts`.
72
74
73
75
### Exemples basiques
74
76
@@ -131,13 +133,14 @@ S'active avec `Shift+P`.
131
133
- registerAlertPromptExample
132
134
133
135
## Guide de démarrage rapide
136
+
134
137
### 0. Pré-requis
135
138
136
139
1. Installez une version beta de Zotero: <https://www.zotero.org/support/beta_builds>
137
140
2. Installez [Node.js](https://nodejs.org/en/) and [Git](https://git-scm.com/)
138
141
139
142
> [!NOTE]
140
-
> Ce guide suppose que vous avez une compréhension initiale de la structure de base et du fonctionnement des extensiosn Zotero. Si ce n'est pas le cas, veuillez vous référer à la [documentation](https://www.zotero.org/support/dev/zotero_7_for_developers)et aux exemples officiels de l'extension [Make It Red](https://github.com/zotero/make-it-red)en premier lieu.
143
+
> Ce guide suppose que vous avez une compréhension initiale de la structure de base et du fonctionnement des extensiosn Zotero. Si ce n'est pas le cas, veuillez vous référer à la [documentation](https://www.zotero.org/support/dev/zotero_7_for_developers)et aux exemples officiels de l'extension [Make It Red](https://github.com/zotero/make-it-red) en premier lieu.
141
144
142
145
### 1. Créez votre dépôt
143
146
@@ -150,14 +153,14 @@ S'active avec `Shift+P`.
150
153
151
154
Effectuez les étapes ci-dessus et créez votre première extension en 30 secondes!
152
155
153
-
- Allez en haut de la [page d'accueil](https://github.com/windingwind/zotero-plugin-template), cliquez sur le bouton vert `Use this template`, cliquez sur `Open in codespace`. ous devrez peut-être vous connecter à votre compte GitHub.
156
+
- Allez en haut de la [page d'accueil](https://github.com/windingwind/zotero-plugin-template), cliquez sur le bouton vert `Use this template`, cliquez sur `Open in codespace`. ous devrez peut-être vous connecter à votre compte GitHub.
154
157
- Attendez que _GitHub CodeSpace_ se charge.
155
158
156
159
</details>
157
160
158
161
3. Entrez dans le dossier du dépôt
159
162
160
-
### 2. Configurez les paramètres du Modèle et l'environnement de développement
163
+
### 2. Configurez les paramètres du Modèle et l'environnement de développement
161
164
162
165
1. Modifier les paramètres dans `./package.json`, y compris :
163
166
@@ -177,36 +180,38 @@ S'active avec `Shift+P`.
177
180
}
178
181
```
179
182
180
-
> ![WARNING]
181
-
> Veillez à bien définir addonID et addonRef pour éviter tout conflit.
183
+
> ![WARNING]
184
+
> Veillez à bien définir addonID et addonRef pour éviter tout conflit.
182
185
183
-
Si vous avez besoin d'héberger vos paquets XPI en dehors de GitHub, modifiez `updateURL` et ajoutez `xpiDownloadLink` dans `zotero-plugin.config.ts`.
186
+
Si vous avez besoin d'héberger vos paquets XPI en dehors de GitHub, modifiez `updateURL` et ajoutez `xpiDownloadLink` dans `zotero-plugin.config.ts`.
184
187
185
-
2.Copiez le fichier de la variable d'environnement. Modifiez la commandes quilance la version beta de Zotero.
188
+
2. Copiez le fichier de la variable d'environnement. Modifiez la commandes quilance la version beta de Zotero.
186
189
187
-
> Créez un profil de développement (Optionnel)
188
-
> Démarrez la version beta de Zotero avec `/path/to/zotero -p`. Créez un nouveau profil et utilisez-le comme profil de développement. Ne le faites qu'une seule fois !
189
-
```sh
190
-
cp .env.example .env
191
-
vim .env
192
-
```
190
+
> Créez un profil de développement (Optionnel)
191
+
> Démarrez la version beta de Zotero avec `/path/to/zotero -p`. Créez un nouveau profil et utilisez-le comme profil de développement. Ne le faites qu'une seule fois !
192
+
193
+
```sh
194
+
cp .env.example .env
195
+
vim .env
196
+
```
193
197
194
198
Si vous développez plus d'une extension, vous pouvez stocker le chemin bin et le chemin profile dans les variables d'environnement du système, qui peuvent être omises ici.
195
199
196
200
3. Installez les dépendances avec `npm install`
197
201
198
202
> Si vous utilisez `pnpm` comme gestionnaire de paquets pour votre projet, vous devez ajouter `public-hoist-pattern[]=*@types/bluebird*` à `.npmrc`, voir <https://github.com/windingwind/zotero-types?tab=readme-ov-file#usage>.
199
203
200
-
Si vous obtenez `npm ERR ! ERESOLVE unable to resolve dependency tree` avec `npm install`, qui est un bogue de dépendance en amont de typescript-eslint, utilisez la commande `npm i -f` pour l'installer.
204
+
Si vous obtenez `npm ERR ! ERESOLVE unable to resolve dependency tree` avec `npm install`, qui est un bogue de dépendance en amont de typescript-eslint, utilisez la commande `npm i -f` pour l'installer.
201
205
202
206
### 3. Codez !
203
207
204
208
Démarrez le serveur de développement avec `npm start`:
209
+
205
210
- Il fera La pré-construction de l'extension en mode développement
206
211
- Il démarrera Zotero avec l'extension chargée depuis `build/`
207
212
- Il surveillera `src/**` et `addon/**`.
208
-
- Si `src/**` a changé, lancez esbuild et rechargez.
209
-
- Si `addon/**` a changé, reconstruisez l'extension (en mode développement) et recharger là.
213
+
- Si `src/**` a changé, lancez esbuild et rechargez.
214
+
- Si `addon/**` a changé, reconstruisez l'extension (en mode développement) et recharger là.
210
215
211
216
#### Rechargement automatique à chaud
212
217
@@ -230,14 +235,15 @@ Vous pouvez également :
230
235
231
236
- Tester les extraits de code dans Outils -> Développeur -> Run Javascript ;
232
237
- Déboguer la sortie avec`Zotero.debug()`. Trouver les sorties dans Aide->Journal de débogage->Voir le journal;
233
-
- Déboguer l'interface utilisateur. Zotero est construit sur le cadre XUL de Firefox. Déboguez l'interface utilisateur XUL avec un logiciel comme [XUL Explorer](https://udn.realityripple.com/docs/Archive/Mozilla/XUL_Explorer).
238
+
- Déboguer l'interface utilisateur. Zotero est construit sur le cadre XUL de Firefox. Déboguez l'interface utilisateur XUL avec un logiciel comme [XUL Explorer](https://udn.realityripple.com/docs/Archive/Mozilla/XUL_Explorer).
234
239
> Documentation de XUL : <http://www.devdoc.net/web/developer.mozilla.org/en-US/docs/XUL.html>
235
240
236
241
### 4. Construction (Build)
237
242
238
243
Exécutez `npm run build` construire l'extension en mode production : t le xpi pour l'installation et le code construit se trouve dans le dossier `build`.
239
244
240
245
Étapes de la construction :
246
+
241
247
- Créez/videz `build/`.
242
248
- Copiez `addon/**` dans `build/addon/**`.
243
249
- Remplacez les espaces réservés : utilisez `replace-in-file` pour remplacer les mots-clés et les configurations définis dans `package.json` dans les fichiers non-construits (`xhtml`, `json`, et al.).
@@ -275,13 +281,10 @@ npm run release
275
281
276
282
Le modèle définit `prerelease` comme la version beta de l'extension, lorsque vous sélectionnez une version `prerelease` dans Bumpp (avec `-` dans le numéro de version). Le script de construction créera un nouveau `update-beta.json` pour l'utilisation de la prerelease, ce qui assure que les utilisateurs de la version normale ne seront pas en mesure de mettre à jour vers la version beta. Seuls les utilisateurs qui ont téléchargé et installé manuellement la version bêta seront en mesure de mettre à jour automatiquement vers la prochaine version bêta.
277
283
278
-
279
284
Lorsque la prochaine version normale sera mise à jour, `update.json` et `update-beta.json` seront tous deux mis à jour (sur la version spéciale `release`, voir ci-dessus) afin que les utilisateurs de la version normale et de la version bêta puissent se mettre à jour vers la nouvelle version normale.
280
285
281
286
> [!WARNING]
282
-
> La distinction entre les versions des extensions compatibles avec Zotero 6 et Zotero 7 devrait être strictement faite en configurant `applications.zotero.strict_min_version` dans `addons.__addonID__.updates[]` de `update.json` respectivement, afin que Zotero le reconnaisse correctement, voir <https://www.zotero.org/support/dev/zotero_7_for_developers#updaterdf_updatesjson>.
283
-
284
-
287
+
> La distinction entre les versions des extensions compatibles avec Zotero 6 et Zotero 7 devrait être strictement faite en configurant `applications.zotero.strict_min_version` dans `addons.__addonID__.updates[]` de `update.json` respectivement, afin que Zotero le reconnaisse correctement, voir <https://www.zotero.org/support/dev/zotero_7_for_developers#updaterdf_updatesjson>.
285
288
286
289
## Détails
287
290
@@ -290,23 +293,21 @@ Lorsque la prochaine version normale sera mise à jour, `update.json` et `update
290
293
> Voir également [`src/hooks.ts`](https://github.com/windingwind/zotero-plugin-template/blob/main/src/hooks.ts)
291
294
292
295
1. Lorsque l'installation/activation/démarrage est déclenché par Zotero, `bootstrap.js` > `startup` est appelé
293
-
- Attendez que Zotero soit prêt ;
294
-
- Chargez de `index.js` (l'entrée principale du code de lextension, construit à partir de `index.ts`) ;
295
-
- Enregistrez les ressources si Zotero 7+
296
+
- Attendez que Zotero soit prêt ;
297
+
- Chargez de `index.js` (l'entrée principale du code de lextension, construit à partir de `index.ts`) ;
298
+
- Enregistrez les ressources si Zotero 7+
296
299
2. Dans l'entrée principale `index.js`, l'objet extension est injecté sous `Zotero` et `hooks.ts` > `onStartup` est appelé.
297
-
- Initialisez tout ce que vous voulez, y compris les auditeurs de notifications (hooks), les panneaux de préférences et les éléments de l'interface utilisateur.
300
+
- Initialisez tout ce que vous voulez, y compris les auditeurs de notifications (hooks), les panneaux de préférences et les éléments de l'interface utilisateur.
298
301
3. Lorsque la désinstallation/désactivation est déclenchée depuis Zotero, `bootstrap.js` > `shutdown` est appelé.
299
-
-`events.ts` > `onShutdown` est appelé. Cela supprime les éléments de l'interface utilisateur, les panneaux de préférences, ou tout ce qui a été créé par l'extension'.
300
-
- Supprimez les scripts et libérez les ressources.
302
+
-`events.ts` > `onShutdown` est appelé. Cela supprime les éléments de l'interface utilisateur, les panneaux de préférences, ou tout ce qui a été créé par l'extension'.
303
+
- Supprimez les scripts et libérez les ressources.
301
304
302
305
### À propos des variables globales
303
306
304
307
> Voir aussi [`src/index.ts`] (https://github.com/windingwind/zotero-plugin-template/blob/main/src/index.ts)
305
308
306
-
307
309
L'extension 'bootstrappé' fonctionne dans un bac à sable, qui n'a pas de variables globales par défaut comme `Zotero` ou `window`, que nous avions l'habitude d'avoir en superposition dans la fenêtre d'environnement des extensions.
308
310
309
-
310
311
Ce modèle enregistre les variables suivantes avec une portée globale :
### Création d'une API pour les éléments de l'extension
317
318
318
-
319
319
Le modèle d'extension fournit de nouvelles API pour les extensions 'bootstrappées'. Nous avons deux raisons d'utiliser ces APIs, au lieu de `createElement/createElementNS` :
320
320
321
321
- En mode bootstrap, les extensions doivent nettoyer tous les éléments de l'interface utilisateur à la sortie (désactivation ou désinstallation), ce qui est très ennuyeux. En utilisant `createElement`, le modèle de l'eextensions va maintenir ces éléments. Il suffit de lancer `unregisterAll` à la sortie.
@@ -340,6 +340,7 @@ Recherchez le label de l'interface utilisateur dans les fichiers `.xhtml`/`.flt`
340
340
### Structure des répertoires
341
341
342
342
Cette section montre la structure des répertoires d'un modèle.
343
+
343
344
- Tous les fichiers de code `.js/.ts` sont dans `./src` ;
344
345
- Les fichiers de configuration des addons : `./addon/manifest.json` ;
0 commit comments