It would be very useful to have a central Internet repository for Inkscape extensions, similarly as Firefox has. This way, Inkscape could update installed extensions from the web site, with no need for the user to know if an extension is updated.
What extensions are there? We can start listing them here:
- Inkscape Effects - Aaron Spikes set of extensions is now included in Inkscape.
- ExtrudeEffect - extrude polygons to "3d", also make "string art"
- InkscapeCalendarShellScript - Create Calendars sucks or is impracticable if you do not have something that automatizes the process of to put the days organized in blocks of months to you. To format manually is easy, but this extension can help you on this too [Bash script, works for win32 with cygwin].
- InkscapeAreaCutter - For Webdesigners, layout for sites, slice area into .png images. util! (pt_BR)
- EQTeXSVG - EQTeXSVG is an extension for Inkscape used to convert an inline LATEX equation into SVG path using Python.
- InkLaTeX Insert LaTeX text or equations into Inkscape.
- TexText Embed re-editable LaTeX objects in SVG drawings.
- PathDeform - Here is an Inkscape extension whose purpose is to bend a path according to another one. Note: it was added to Inkscape 0.45 as "Pattern along Path".
- InkBar - This is an Inkscape extension whose purpose is to draw EAN13 bar code.
- SWF output - A little extension to save as Swf from Inkscape.
- Puff - Fluffs elements! :-D
- Sudoku Generator - Generates Sudoku square with the solution (in a small square if you want).
- CalligraphedOutlineFill - helps to fill in the inside area of shapes drawn with the Calligraphy tool
- SlotStar - helps to draw the star of slot of a winding of an electrical machine
- inkscapeLatexExtension - Extract text in an inkscape drawing to a latex picture environment.
- s.a.w.s - export the svg Inkscape file in valid xhtml / css files.
- Generator - replace text and data to automatic generate files done for usage (like PDF, PS, JPG, etc...), based in a SVG template and a data file.
- RubyInk - Inkscape extension with Ruby
- Ink-Bash - ShellScript Forever!
The Repository Specification
A website where programmers can publish their extensions, users can search by that, and an update program can access this updates.
- User Registration: to allow upload, votes and comments
- Extension Validation: when published, it is public, but the user must be notified that was not validated (the code must be viewed by an validator user). The software updater do not update non-validated versions.
- Validation Feedback: the validator user must write why the extension was not validated.
- Extension Deletion: the validator user can delete an extension or version when he found a malicious code. The upload user must be marked as a malicious user and the account must be blocked.
- Extension Search: with filter, by any available data.
- User Votes and Comments for Extensions: The user can vote and/or comment an extension version.
- Extension Bug-Traker: today, third part extensions are in simple web-pages. The site may have a Bug-Traker to help all little scripts.
- User Extensions Requests: a lot of users have ideas. Here is a good place for programers see and make that alive.
- Host a cool page for the extension: allow introduction text, documenbtation, screenshots, examples, and i18n!
- Help the l10n of this extensions: with a web interface, like pootle and provide the l10n file for the updater program.
- Provide Version Control: A SVN account will be cool, but web uploads (by web-forms) can be transparently SVN commits.
The Extension Meta-Data
The data in INX file and more some, like the O.S. and Inkscape version compatibility...
The INX file will define the meta-data settable by that. If some extension uses multiples INX files to have more than one option in the menu, all INX files must be read to set the meta-data. The meta-data will be cached in a database to help the search. The DB only need the meta-data of the last validated version and the last non-validated (if that is newer).
The Update Program
- Search for New Extensions: when the user request
- Update Extensions: search for updates and install that
- Help the Code Validation: for advanced users. Show the extension code and the diff if is that an update.
- Help the User Bug-Reporting: that is not working! The user must say now! (When the Update Program be part of the Inkscape, the error window can have a button to submit a bug-report)
- Must test the extension dependencies: the user must know what is needed to install before try to use.