Inkscape/Greffons
Ajouter de nouveaux greffons à Inkscape
modifierLe système de greffons d'Inkscape (Inkscape Extensions) est aujourd'hui principalement basé sur le langage Python et contient également quelques scripts en Shell (Bash) et en Perl ; il y a un exemple en Ruby, mais je ne suis pas sûr qu'il soit utilisé, un greffon portant le même nom existant en python. Un système de greffons utilisant le langage Ruby avait été mis en place il y a quelques années, mais n'est pas maintenu à ce jour.
Pour ce qui est de python, jusqu'à la version 0.45.1 d'Inkscape, la bibliothèque pyXML est utilisée pour la gestion du XML, mais a partir de la 0.46 (qui doit sortir début 2008), la bibliothèque lxml la remplace ; celle-ci est plus performante, plus légère et mieux documentée que pyXML (qui a l'air abandonnée).
Les modules d'extension d'Inkscape sont composés de 2 fichiers :
Fichier .inx
modifierLe fichier .inx
contient la description de ce dont a besoin le greffon :
- le nom du script dans le menu extensions, et le sous menu auquel il est rattaché,
- les arguments dont le script a besoin ainsi que leur type,
- l'interpréteur de commande utilisé par le script,
- l'emplacement et le nom du script sur disque.
Fichier de script
modifierIl récupère les arguments fournis par inkscape dans l'architecture XML du fichiers SVG.
Par exemple en python :
class Project(inkex.Effect):
def __init__(self):
inkex.Effect.__init__(self)
def effect(self):
if len(self.options.ids) < 2:
inkex.debug("Requires two selected paths. The second must be exactly four nodes long.")
sys.exit()
La class projet
contient la méthode Effect
qui sera appelé avec les options ; cet extrait est tiré du greffon perspective.py
qui a besoin de 2 arguments.
Liens externes
modifier- anglaisPython Scripting HowTo
- anglaisFAire un INX
- anglaisLxml] bibliothèque XML python utilisé dans les greffons Inkscape.
- anglaisCatégorie extensions sur le wiki du site officiel d'Inkscape]
- anglaisAttributs des extensions
- anglaisLes évolutions futures du système d'extensions