I’ve been using Inkscape for about fifteen years now. With every new release, I’m happy and grateful for all the efforts done by multitude of volunteers. The last five years, I tried contributing by helping out people in the Inkscape Facebook channel and on my youtube channel.
With the implementation of multipage support in the upcoming version of Inkscape, I started dreaming of writing my very first Inkscape plugin. I did some Python scripting in the past, so this was the perfect occasion to dust off those skills and have a shot at it: I’d like to create a plugin that duplicates the first page into as many copies as you want, but with an incrementing counter.
As Inkscape is open source, and so are the plugins… it’s really easy to have a peek into the existing plugins. I quickly got stuck though, so I reached out for help. I quickly discovered the Inkscape forums and the Inkscape chat, two places where developers and aspiring developers tend to linger.
First encounters with the other plugin developers were very friendly and helpful. After a bit of asking back and forth, Jonathan suggested that I could upgrade the inkex, that’s the plugin that manages all the Inkscape specific features and allows you to program scripts. Multipage wasn’t embedded yet and would be a nice addition.
You’ll find the Inkscape source code on gitlab, including the core extensions. Jonathan gave me a small primer in forking, writing unit tests and how to get your code merged back into the Inkscape codebase. With Jonathan stepping up and spontaneously becoming my mentor, I’ve been learning a lot the last few weeks. After my first commit, he gave feedback on how to improve my next commit. Putting way more time into teaching me what I did wrong, than it would have taken to just fix my errors… I have learned a lot about git version control and about the Inkscape logic. It’s fun when you celebrate your first commit, and your Inkscape heroes celebrate along.
In the meanwhile, the first code has been accepted. So next time DoctorMo or Jonathan are in Brussels, I’ll have them a Belgian beer (or other beverage of choice).