🧩Gestionnaire d’extensions Inkscape – Documentation développeur

Cette page explique comment structurer et publier vos extensions Inkscape pour qu’elles soient automatiquement détectées, listées, installées et mises à jour par le gestionnaire d’extensions.

Compatible GitHub / GitLab / Codeberg / Bitbucket
Extensible à n'importe quelle forge logicielle
Multi‑dépôts & multi‑extensions

🚀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.
📦Résumé rapide
Vue d’ensemble

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.

Important : le dépôt doit être accessible en lecture publique sur la plateforme choisie (GitHub, GitLab, Codeberg, Bitbucket…).

📄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.
Tous les fichiers de l’extension doivent se trouver dans un même dossier dans le dépôt de 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.
Attention : Info.json avec un « I » majuscule.

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"

}
Attention : la clé type doit être exactement "InkScape extension" pour que le gestionnaire reconnaisse l’extension comme valide.

🔗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/"
  ]
}
Règle simple : les chemins de download sont relatifs à la racine du dépôt.

📈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.

Conseil : incrémentez la version à chaque modification publiée pour que les utilisateurs bénéficient des mises à jour automatiques.

🧪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.