Objectif de cette documentation
Cette documentation s’adresse aux développeurs d’extensions Inkscape qui souhaitent rendre leurs extensions installables et maintenables via le gestionnaire d’extensions.
L’idée est simple : si votre dépôt respecte la structure décrite ci‑dessous, le gestionnaire pourra :
- lister automatiquement vos extensions,
- les installer dans le bon dossier utilisateur,
- les mettre à jour en comparant les versions locales et en ligne,
- les présenter proprement à l’utilisateur final.
Pour être compatible, votre dépôt doit contenir au minimum :
- un fichier list_of_inkscape_extensions.json,
- un ou plusieurs dépôts d’extension contenant chacun un dossier au nom de l’extension et un fichier Info.json,
Structure générale d’un dépôt compatible
Arborescence minimale
mon-depot-extension/
├─ list_of_inkscape_extensions.json
├─ extension_1/
│ ├─ Info.json
│ ├─ mon_script_1.inx
│ ├─ mon_script_1.py
│ └─ ressources/
│ └─ ...
└─ extension_2/
├─ Info.json
├─ mon_script_2.inx
└─ mon_script_2.py
Toutes les extensions peuvent être dans le même dépôt, mais aussi dans des dépôts différents. C’est le fichier list_of_inkscape_extensions.json qui indique où les trouver.
Le gestionnaire télécharge l’archive du dépôt, lit list_of_inkscape_extensions.json, puis installe les dossiers/fichiers indiqués dans la clé download.
Fichier list_of_inkscape_extensions.json
Ce fichier décrit toutes les extensions disponibles dans votre dépôt. Il se trouve à la racine du dépôt.
Structure générale
{
"author": "Frank SAURET",
"namespace": "FrankSAURET",
"URL": "https://github.com/du dépôt qui contient le fichier list_of_inkscape_extensions.json",
"updated": "2026-02-16",
"extensions": [
{
"name": "Nom lisible de l’extension",
"short_description": "Description courte affichée dans le gestionnaire",
"subject": ["Texte", "SVG", "Export"],
"author": "Votre nom ou pseudo",
"version": "1.0.0",
"repos": "https://github.com/votre-compte/mon-depot-extension",
"download": ["extension_1/"],
"default_install_dir": "user",
"compatibility": "Inkscape ≥ 1.2",
"start_here": "Extensions > Mon menu > Mon extension"
}
]
}
Définition des Clés
| Clé | Type | Description |
|---|---|---|
name |
string | Nom affiché dans le gestionnaire et dans la liste des extensions installées. |
short_description |
string | Description courte (1–2 lignes) pour l’utilisateur. |
subject |
string ou array | Catégorie(s) de l’extension (filtrage dans le gestionnaire). |
author |
string | Nom ou pseudo de l’auteur. |
version |
string | Version de l’extension (format X.Y.Z ou X ou X.Y). |
repos |
string (URL) | URL du dépôt (GitHub, GitLab, Codeberg, Bitbucket…) contenant cette extension. |
download |
string ou array | Chemin(s) à copier depuis l’archive du dépôt vers le dossier d’extensions Inkscape. |
default_install_dir |
string | Indication sur le type d’installation (ex. "user"). |
compatibility |
string | Version(s) d’Inkscape supportées. |
start_here |
string | Chemin de menu dans Inkscape pour retrouver l’extension. |
Fichier Info.json dans chaque extension
Chaque extension installée possède un fichier Info.json dans son dossier. Il est utilisé pour :
- identifier l’extension installée,
- connaître sa version locale,
- permettre la comparaison avec la version en ligne.
Exemple de Info.json
{
"type": "InkScape extension",
"name": "Nom lisible de l’extension",
"short_description": "Description plus détaillée de l’extension.",
"author": "Votre nom",
"version": "1.0.0",
"download": ["extension_1/"],
"repos": "https://github.com/votre-compte/mon-depot-extension"
}
Clés repos et download
Clé repos
La clé repos doit contenir l’URL du dépôt racine, par exemple :
- https://github.com/votre-compte/mon-depot-extension
- https://gitlab.com/votre-compte/mon-depot-extension
- https://codeberg.org/votre-compte/mon-depot-extension
- https://bitbucket.org/votre-compte/mon-depot-extension
Le gestionnaire utilise cette URL avec un système de providers paramétriques pour construire automatiquement les URLs de téléchargement.
Clé download
La clé download indique quels dossiers/fichiers doivent être copiés depuis l’archive du dépôt vers le dossier d’extensions Inkscape.
Elle peut être :
- une chaîne : "extension_1/"
- ou une liste : ["extension_1/", "extension_2/"]
{
"name": "Pack d’extensions",
"version": "1.2.0",
"repos": "https://github.com/votre-compte/mon-depot-extension",
"download": [
"extension_1/",
"extension_2/"
]
}
Gestion des versions et mises à jour
Le gestionnaire compare la version locale (dans Info.json installé) et la version en ligne (dans Info.json du dépôt) pour déterminer si une mise à jour est disponible.
Comparaison de versions
Les versions sont comparées numériquement : "1.10.0" > "1.2.0". Utilisez un format simple avec l’année YYYY.MM.PATCH ou YYYY.RELEASE.PATCH 2026.02.0 ou 2026.1.1 qui permet à l’utilisateur de jauger immédiatement de la fraicheur du produit.
Checklist avant publication
- ✅ Le dépôt est public.
- ✅ list_of_inkscape_extensions.json est présent à la racine.
- ✅ Chaque extension a un dossier dédié avec un Info.json.
- ✅ Les chemins download pointent vers des dossiers/fichiers existants.
- ✅ Les URL repos sont correctes.
- ✅ Les versions sont cohérentes entre list_of_inkscape_extensions.json et Info.json.
Intégration dans le gestionnaire
Pour que vos extensions apparaissent dans le gestionnaire, le dépôt qui contient le fichier list_of_inkscape_extensions.json doit être ajouté dans la configuration de l’onglet paramètre.
Pour partager vos extensions, fournissez simplement l’URL de ce dépôt.