Difference between revisions of "Extension repository"
m (→Extensions: Added TikZ exporter) |
|||
(103 intermediate revisions by 29 users not shown) | |||
Line 1: | Line 1: | ||
It would be very useful to have a central Internet repository for Inkscape extensions, | {{Template:MovedToOtherSite|topic=third-party extensions|new_url=https://inkscape.org/gallery/=extension/|new_site=inkscape.org}} | ||
''Info: Curated extensions can now be downloaded from within Inkscape, from the Extensions Manager. Extension authors need to submit their extension to the linked gallery on the website and ask for a review. Most of the extensions below probably do not work with current Inkscape versions.'' | |||
---- | |||
It would be very useful to have a central Internet repository for Inkscape extensions, in a similar manner to Firefox. This way, Inkscape could update installed extensions from the web site, with no need for the user to know if an extension was updated. | |||
Starting from 2015, users can upload their extensions into their InkSpace (gallery) to the [https://inkscape.org Inkscape website], which will then be made available to other users from our [https://inkscape.org/en/download/addons/ extensions gallery]. | |||
This page lists extensions which are neither available per default in Inkscape, and which have not yet been uploaded to inkscape.org by their authors. | |||
== Extensions == | == Extensions == | ||
===[https://github.com/jnweiger/inkscape-gears-dev ImprovedGears]=== | |||
Greatly improved Gears extension including racks, rings, offsets, metric sizes. | |||
===[https://github.com/Neon22/inkscape-jigsaw InkscapeJigsaw]=== | |||
Create an NxM Jigsaw with randomisation, curve control, a surround and backboard. Optimised for minimal cuts. | |||
===[https://github.com/Neon22/inkscape-LasercutBox InkscapeLasertcutBox]=== | |||
A tabbed box script with kerf adjustment for lasercutters. Minimal packing or perfect fit. Dimples for pressure fit of some materials. | |||
===[http://www.iki.fi/pav/software/textext/ TexText]=== | |||
Embed re-editable LaTeX objects into SVG drawings. | |||
===[http://technoargia.free.fr/swftools/ SWF output]=== | |||
Save drawings as SWF. (Updated version (compatible with Inkscape 0.48 on Linux) available on [https://gist.github.com/frederik-elwert/1a46f82fce5d3deb7842 GitHub]). | |||
===[http://wiki.colivre.net/Aurium/Puff Puff]=== | |||
Fluffs elements! :D Ruby-based extension. Requires [http://wiki.colivre.net/bin/view/Aurium/RubyInk RubyInk]. | |||
===[[CalligraphedOutlineFill]]=== | |||
Helps to fill in the inside area of shapes drawn with the Calligraphy tool, similar to filling with the paint bucket. Alternative from Inkscape 0.91 on: PowerStroke path effect (instead of Calligraphy tool) + Clone original Path effect for the fill. | |||
===[http://wiki.colivre.net/Aurium/InkscapeGenerator Generator]=== | |||
Replace text and data to automatically generate files (as PDF, PNG, EPS, PS, JPG, SVG), based on an SVG template and a CSV file. | |||
Also available via apt in Debian and Ubuntu repositories. [https://inkscape.org/en/~Moini/%E2%98%85example-files-for-generator-extension Example file set for testing]<!-- Confirmed to work on Linux, consists of a shell script (author gives instructions for Win and OS X - can they work?) --> | |||
===[https://github.com/kjellmf/svg2tikz SVG2tikz]=== | |||
Export SVG paths as TikZ. | |||
===[[FindMatch]]=== | |||
Looks for paths that match the selected path and places all matches on the same layer, note the comment at the bottom of the page. | |||
===[http://emilien.tlapale.com/code/inksyntax InkSyntax]=== | |||
A source code syntax highlighter plugin for Inkscape (wrapping [http://pygments.org pygments] and [http://www.andre-simon.de/doku/highlight/en/highlight.html highlight]). | |||
===[http://sites.google.com/site/placeonpath/ Place Objects on Path]=== | |||
Places objects on a curve. The curve is the object that has the lowest z-order (and which must be a path). Distances between objects remain the same as they were before placing. If objects can't be placed on the curve because of their distances they are left in place. Objects will not be modified; clones are allowed. Arrange distances between your objects manually first as curve position and direction. | |||
===[http://svg2dxf.googlecode.com/files/svg2dxf_inkscape.zip svg2dxf]=== | |||
Updated version of [http://www.bobcookdev.com/inkscape/inkscape-dxf.html Better Better DXF output] which adds support for polylines and does not overwrite the default inkscape simpletransform.py. See README if getting lxml xpath errors. | |||
===[https://github.com/brathering82/inkscape/tree/master/src Scale Generator]=== | |||
Create a scale for a ruler, map, gauge, clock, compass, etc. Confirmed to work with Inkscape 0.91. | |||
===[http://code.google.com/p/scott-inkscape/wiki/SevenSegmentDigits Seven Segment Digits]=== | |||
Create calculator style digits. [https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/scott-inkscape/source-archive.zip Direct link] | |||
===[http://dp48069596.lolipop.jp/inkscape_script.html Closeoff, Scatterpath, Selection, Zigzag and Netting]=== | |||
See [http://dp48069596.lolipop.jp/inkscape_video.html] for how to use Zigzag and scater extensions. | |||
===[http://wiki.xmoto.tuxfamily.org/index.php?title=How_to_create_smooth_levels_using_Inkscape Inksmoto]=== | |||
Level editor for the Xmoto 2D-Motocross game. | |||
===[http://www.cnc-club.ru/forum/viewtopic.php?f=33&t=37 Close Curves]=== | |||
Extension to close the paths in the selection. | |||
===[http://www.signcutpro.com/download-available-plug-ins/ SignCut Export]=== | |||
Set of extensions that come with SignCut to enable Inkscape users to use plotters / cutters via the SignCut software. | |||
===[http://www.lysator.liu.se/~perni/iboardgameexts/ Boardgame extensions]=== | |||
Inkscape Extensions for Boardgame Development [http://www.boardgamegeek.com/thread/299033/inkscape-extensions-for-boardgame-developlemt 1]. Includes a hexagonal board/hexmap creator and tools to sheets of tiles for counters ect. More recent versions available here: [https://github.com/lifelike/countersheetsextension] and here: [https://github.com/lifelike/hexmapextension] | |||
=== [http://sozi.baierouge.fr/ Sozi] === | |||
A tool for presentations made using zooms and rotations, not just slides. Uses Javascript added to the .svg file to display in web-browsers. | |||
Version 13.11 is the last version of sozi which is available as an Inkscape extension. According to [http://sozi.baierouge.fr/release-14.10.html this article], future versions will be available as standalone-application. | |||
<!-- ===[http://wiki.softwarelivre.org/InkscapeBrasil/ExportarPDFCMYK CMYK pdf/tiff export]=== | |||
Extension to export to CYMK colourspaced PDFs / Tiffs for Linux. More info in English (instead of Portuguese) [here http://www.inkscapeforum.com/viewtopic.php?f=11&t=5943]. | |||
--> | |||
===[http://sourceforge.net/projects/o-scape/ O-Scape; Orienteering map making tools]=== | |||
Extensions to help make Orienteering maps; see this [http://www.nopesport.com/news/1343-o-scape-free-orienteering-mapping-software interview] for more information | |||
===[http://www.inkscapeforum.com/viewtopic.php?f=5&t=4729#p32019 Mirror]=== | |||
Mirror a path along any axis. From version 0.92 on, there will also be a Mirror LPE available. | |||
===[http://sourceforge.net/projects/inkscape-tables/ Tables in Inkscape]=== | |||
Adds (experimental?) table suport as an extension. | |||
===[http://doctormo.org/2011/05/19/deviantart-plugins-released/ deviantArt uploaders]=== | |||
Upload artwork to deviantArt from the "publish to" menue item under extensions.<!-- appears to be broken for current DA website and Inkscape --> | |||
===[https://github.com/piroxiljin/inkscape-music-scale-generator Musical scales]=== | |||
Extension for automatic generation schemes of musical scale and chords on piano. | |||
===[http://www.inkscapeforum.com/viewtopic.php?f=11&t=9212 Text from CSV]=== | |||
Extension to enter text from a CSV file | |||
===[http://luther.ceplovi.cz/git/inkscape-ungroup-deep.git/ Deep Ungroup]=== | |||
Ungroup all groups in the selected object. [https://github.com/cw/inkscape-ungroup-deep Alternative source] | |||
===[http://www.pernsteiner.org/inkscape/layerclip/ Layer Clip]=== | |||
This is a a set of Inkscape extension scripts for setting and removing clip paths for entire layers. Inkscape has no trouble rendering or editing layers with clip paths, but it currently has no built-in method of setting the clip path for a layer, this is the purpose of these extensions. | |||
Features include: Clip containing layer, Clip layer above, Clip layer below, Clip parent layer. | |||
'''''Notes:''' | |||
''You must select an object in the clipping layer before applying the extension, otherwise you will receive an error message. | |||
It is a good idea to lock the layer after the extension has been applied. You may also require hiding the clipping layer when using "Clip layer below". This may be exploited to create a masking layer. | |||
Tested on Inkscape 0.48.2 r98''19'' | |||
===[https://bitbucket.org/daviddamerell/inkscapesaveasicoextension Icon Generation]=== | |||
This is an Inkscape output extension that adds an option to the "save-as" dialog box to generate Windows Icon files (*.ico). Uses perl. | |||
===[https://github.com/quirxi/SheetMetalCone/ Sheet Metal Cone]=== | |||
This draws the 2d shape which is required to form a 3dcone (or truncated cone) after it's cut out (of whatever material). Documentation or to report a bug: http://www.quirxi.net/code/python/sheet_metal_cone/overview.html | |||
(released when 0.91 was current stable version) | |||
==Extensions for Programmers:== | |||
===[http://wiki.colivre.net/Aurium/RubyInk RubyInk]=== | |||
Inkscape extension with Ruby | |||
===[http://wiki.colivre.net/Aurium/InkBash Ink-Bash]=== | |||
<nowiki>ShellScript</nowiki> Forever! | |||
===[http://wiki.colivre.net/Aurium/InkMoz InkMoz]=== | |||
The Bridge from Inkscape to Mozilla (Inkscape extension with Javascript and more) | |||
===[https://github.com/sambody/inkscape-guide-tools Inkscape guide tools]=== | |||
These are a series of Inkscape extensions related to guides: Add centered guides to page or selection, Add margin guides to page or selection, Add grid guides and Remove selected guides. Allows to add guides at specified distances from the page border. | |||
== Extensions that have made it into Inkscape == | |||
===[http://www.julienvitard.eu/en/eqtexsvg_en.html EQTeXSVG]=== | |||
Convert an inline LATEX equation into SVG path using Python. More current version included in Inkscape's default extensions. | |||
===[[ExtrudeEffect]]=== | |||
Extrude polygons to "3d", also make "string art". More current version included in Inkscape's default extensions. | |||
===[http://wiki.colivre.net/Aurium/InkscapeCalendarShellScript InkscapeCalendarShellScript]=== | |||
Creating calendars sucks or is impractical if you do not have something that automates the process of putting the days organized in blocks of months for you. To format manually is easy, but this extension can help you on this, too. BASH script, works for Win32 with Cygwin. More current version included in Inkscape's default extensions. | |||
===[http://wiki.colivre.net/Aurium/InkscapeAreaCuter InkscapeAreaCutter]=== | |||
For web designers. Slice your site design into .png images. (pt_BR) Dead link, no longer available. More current version included as Web slicer in Inkscape now. | |||
===[https://sites.google.com/site/richardhenwood/project/inkscapelatexextension inkscapeLatexExtension]=== | |||
Extract text in an SVG drawing to a LaTeX picture environment. Now included in Inkscape as 'PDF+Latex' option during pdf / eps / ps export. | |||
===[http://code.google.com/p/jessyink/ JessyInk]=== | |||
A collection of Javascripts that can be embedded into an SVG file to produce slide shows on opening in a browser. Current releases of JessyInk include a number of inkscape extensions to assign effects, transitions and other aspects of the presentations. More current version included in Inkscape. | |||
===[http://code.google.com/p/pixelsnap/ PixelSnap]=== | |||
Tool for aligning object/paths onto the pixel grid for bitmap export. More current version included in Inkscape. | |||
===[http://code.google.com/p/inkscape-guides-creator/ Guide creator]=== | |||
Creates multiple guides at once, at set intervals. More current version included in Inkscape. | |||
===[https://github.com/cnc-club/gcodetools Gcode tools]=== | |||
Generates Gcode program (used in CNC machinery) from given paths ([http://www.cnc-club.ru/forum/viewtopic.php?f=15&p=101 English forum]). Included in Inkscape now. | |||
===[https://code.google.com/p/inkscape-guillotine/ Guillotine]=== | |||
This is a mirror of the GIMP guillotine function, it allows you to drag guides onto the canvas, and then using Export->Guillotine, export those slices as pngs to the directory and filename of your choice. It also has an option for using export hints, if your drawing has previously been exported. [http://www.inkscapeforum.com/viewtopic.php?f=11&t=5832 Forum link] | |||
===[http://code.google.com/p/inkscape-replace-font/ Replace Font]=== | |||
Allows mass replacement of the fonts in a document. Can list existing fonts. [http://www.inkscapeforum.com/viewtopic.php?f=11&t=5843 Forum link] | |||
<!-- == Dead links or superseded == | |||
===[http://www.inkbar.lineaire.net/ InkBar]=== | |||
Create EAN13 bar codes. More versatile Barcode extension available in Inkscape now. | |||
===[http://edlab.die.unipd.it/Site4.html SlotStar]=== | |||
Helps to draw the star of slot of a winding of an electrical machine. Dead link, couldn't find newer version. | |||
===[http://camm-gl.dyndns.org/ Inkscape CAMM-GL Extension]=== | |||
... vinyl cutting utility for Inkscape | |||
This program is basically just a cut manager. Create artwork in Inkscape, save with the supplied hpgl_output extension, and cut or plot with this program. The program does provide some useful functions, but it is by no means a fully featured solution. I do use it exclusivly, and it currently satisfies my needs. Dead link. | |||
--> | |||
== The Repository Specification == | == The Repository Specification == | ||
Line 41: | Line 198: | ||
* '''Extension Search''': with filter, by any available data. | * '''Extension Search''': with filter, by any available data. | ||
* '''User Votes and Comments for Extensions''': The user can vote and/or comment an extension version. | * '''User Votes and Comments for Extensions''': The user can vote and/or comment an extension version. | ||
* '''Extension Bug- | * '''Extension Bug-Tracker''': 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 | * '''User Extensions Requests''': a lot of users have ideas. Here is a good place for programmers see and make that alive. | ||
* '''Host a cool page for the extension''': allow introduction text, documenbtation, screenshots, examples, and '''i18n'''! | * '''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. | * '''Help the l10n of this extensions''': with a web interface, like pootle and provide the l10n file for the updater program. | ||
Line 49: | Line 206: | ||
=== The Extension Meta-Data === | === The Extension Meta-Data === | ||
''The data in INX file and more some, like the | ''The data in INX file and more some, like the OS 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 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). | ||
Line 70: | Line 227: | ||
''Why Factory? Because it is not only a repository. ;-)'' | ''Why Factory? Because it is not only a repository. ;-)'' | ||
* '''The Furnace''' | |||
''Because Fire & Coal (Passion & Knowledge) are your tools for creating the extensions'' | |||
[[Category:Developer Documentation]] | [[Category:Developer Documentation]] | ||
[[Category:Extensions]] | [[Category:Extensions]] | ||
== Mockups == | |||
Here are some suggestions for what an extension repository might look like. | |||
<gallery> | |||
File:Extension_repository_-_homepage.png|The home page. | |||
File:Extension_repository_-_extension_page.png|The page for an individual extension. | |||
File:Extension_repository_-_request_page.png|The page for an individual request. | |||
File:Extension_repository_-_search_page.png|The search form page. | |||
File:Extension_repository_-_search_results.png|The search results page. | |||
File:Extension_repository_-_submit_extension.png|The extension submission page. | |||
File:Extension_repository_-_submit_request.png|The request submission page. | |||
File:Extension_repository_-_requests.png|The main requests page. | |||
</gallery> | |||
I have no idea of the detail of this project; I don't currently have the skills necessary to try implementing it. I'm also not sure whether it's a good idea for Inkscape to offer hosted repositories (using [http://www.redmine.org/projects/redmine Redmine] or [http://trac.edgewall.org/ Trac]?) or whether it would be better to just leave it to the developer to use somewhere like [http://github.com/ GitHub] or [http://bitbucket.org/ BitBucket] and then use their APIs to pull some basic data onto the site. [[User:Legio noctis|Legio noctis]] 10:19, 23 May 2010 (UTC) |
Latest revision as of 19:50, 3 February 2023
The Inkscape Wiki is no longer used to host information about third-party extensions.
You can now find related information at inkscape.org.
This page is kept for historical reasons, e.g. to document specific decisions in Inkscape development.
Info: Curated extensions can now be downloaded from within Inkscape, from the Extensions Manager. Extension authors need to submit their extension to the linked gallery on the website and ask for a review. Most of the extensions below probably do not work with current Inkscape versions.
It would be very useful to have a central Internet repository for Inkscape extensions, in a similar manner to Firefox. This way, Inkscape could update installed extensions from the web site, with no need for the user to know if an extension was updated.
Starting from 2015, users can upload their extensions into their InkSpace (gallery) to the Inkscape website, which will then be made available to other users from our extensions gallery.
This page lists extensions which are neither available per default in Inkscape, and which have not yet been uploaded to inkscape.org by their authors.
Extensions
ImprovedGears
Greatly improved Gears extension including racks, rings, offsets, metric sizes.
InkscapeJigsaw
Create an NxM Jigsaw with randomisation, curve control, a surround and backboard. Optimised for minimal cuts.
InkscapeLasertcutBox
A tabbed box script with kerf adjustment for lasercutters. Minimal packing or perfect fit. Dimples for pressure fit of some materials.
TexText
Embed re-editable LaTeX objects into SVG drawings.
SWF output
Save drawings as SWF. (Updated version (compatible with Inkscape 0.48 on Linux) available on GitHub).
Puff
Fluffs elements! :D Ruby-based extension. Requires RubyInk.
CalligraphedOutlineFill
Helps to fill in the inside area of shapes drawn with the Calligraphy tool, similar to filling with the paint bucket. Alternative from Inkscape 0.91 on: PowerStroke path effect (instead of Calligraphy tool) + Clone original Path effect for the fill.
Generator
Replace text and data to automatically generate files (as PDF, PNG, EPS, PS, JPG, SVG), based on an SVG template and a CSV file. Also available via apt in Debian and Ubuntu repositories. Example file set for testing
SVG2tikz
Export SVG paths as TikZ.
FindMatch
Looks for paths that match the selected path and places all matches on the same layer, note the comment at the bottom of the page.
InkSyntax
A source code syntax highlighter plugin for Inkscape (wrapping pygments and highlight).
Place Objects on Path
Places objects on a curve. The curve is the object that has the lowest z-order (and which must be a path). Distances between objects remain the same as they were before placing. If objects can't be placed on the curve because of their distances they are left in place. Objects will not be modified; clones are allowed. Arrange distances between your objects manually first as curve position and direction.
svg2dxf
Updated version of Better Better DXF output which adds support for polylines and does not overwrite the default inkscape simpletransform.py. See README if getting lxml xpath errors.
Scale Generator
Create a scale for a ruler, map, gauge, clock, compass, etc. Confirmed to work with Inkscape 0.91.
Seven Segment Digits
Create calculator style digits. Direct link
Closeoff, Scatterpath, Selection, Zigzag and Netting
See [1] for how to use Zigzag and scater extensions.
Inksmoto
Level editor for the Xmoto 2D-Motocross game.
Close Curves
Extension to close the paths in the selection.
SignCut Export
Set of extensions that come with SignCut to enable Inkscape users to use plotters / cutters via the SignCut software.
Boardgame extensions
Inkscape Extensions for Boardgame Development 1. Includes a hexagonal board/hexmap creator and tools to sheets of tiles for counters ect. More recent versions available here: [2] and here: [3]
Sozi
A tool for presentations made using zooms and rotations, not just slides. Uses Javascript added to the .svg file to display in web-browsers.
Version 13.11 is the last version of sozi which is available as an Inkscape extension. According to this article, future versions will be available as standalone-application.
O-Scape; Orienteering map making tools
Extensions to help make Orienteering maps; see this interview for more information
Mirror
Mirror a path along any axis. From version 0.92 on, there will also be a Mirror LPE available.
Tables in Inkscape
Adds (experimental?) table suport as an extension.
deviantArt uploaders
Upload artwork to deviantArt from the "publish to" menue item under extensions.
Musical scales
Extension for automatic generation schemes of musical scale and chords on piano.
Text from CSV
Extension to enter text from a CSV file
Deep Ungroup
Ungroup all groups in the selected object. Alternative source
Layer Clip
This is a a set of Inkscape extension scripts for setting and removing clip paths for entire layers. Inkscape has no trouble rendering or editing layers with clip paths, but it currently has no built-in method of setting the clip path for a layer, this is the purpose of these extensions.
Features include: Clip containing layer, Clip layer above, Clip layer below, Clip parent layer.
Notes: You must select an object in the clipping layer before applying the extension, otherwise you will receive an error message. It is a good idea to lock the layer after the extension has been applied. You may also require hiding the clipping layer when using "Clip layer below". This may be exploited to create a masking layer. Tested on Inkscape 0.48.2 r9819
Icon Generation
This is an Inkscape output extension that adds an option to the "save-as" dialog box to generate Windows Icon files (*.ico). Uses perl.
Sheet Metal Cone
This draws the 2d shape which is required to form a 3dcone (or truncated cone) after it's cut out (of whatever material). Documentation or to report a bug: http://www.quirxi.net/code/python/sheet_metal_cone/overview.html (released when 0.91 was current stable version)
Extensions for Programmers:
RubyInk
Inkscape extension with Ruby
Ink-Bash
ShellScript Forever!
InkMoz
The Bridge from Inkscape to Mozilla (Inkscape extension with Javascript and more)
Inkscape guide tools
These are a series of Inkscape extensions related to guides: Add centered guides to page or selection, Add margin guides to page or selection, Add grid guides and Remove selected guides. Allows to add guides at specified distances from the page border.
Extensions that have made it into Inkscape
EQTeXSVG
Convert an inline LATEX equation into SVG path using Python. More current version included in Inkscape's default extensions.
ExtrudeEffect
Extrude polygons to "3d", also make "string art". More current version included in Inkscape's default extensions.
InkscapeCalendarShellScript
Creating calendars sucks or is impractical if you do not have something that automates the process of putting the days organized in blocks of months for you. To format manually is easy, but this extension can help you on this, too. BASH script, works for Win32 with Cygwin. More current version included in Inkscape's default extensions.
InkscapeAreaCutter
For web designers. Slice your site design into .png images. (pt_BR) Dead link, no longer available. More current version included as Web slicer in Inkscape now.
inkscapeLatexExtension
Extract text in an SVG drawing to a LaTeX picture environment. Now included in Inkscape as 'PDF+Latex' option during pdf / eps / ps export.
JessyInk
A collection of Javascripts that can be embedded into an SVG file to produce slide shows on opening in a browser. Current releases of JessyInk include a number of inkscape extensions to assign effects, transitions and other aspects of the presentations. More current version included in Inkscape.
PixelSnap
Tool for aligning object/paths onto the pixel grid for bitmap export. More current version included in Inkscape.
Guide creator
Creates multiple guides at once, at set intervals. More current version included in Inkscape.
Gcode tools
Generates Gcode program (used in CNC machinery) from given paths (English forum). Included in Inkscape now.
Guillotine
This is a mirror of the GIMP guillotine function, it allows you to drag guides onto the canvas, and then using Export->Guillotine, export those slices as pngs to the directory and filename of your choice. It also has an option for using export hints, if your drawing has previously been exported. Forum link
Replace Font
Allows mass replacement of the fonts in a document. Can list existing fonts. Forum link
The Repository Specification
A website where programmers can publish their extensions, users can search by that, and an update program can access this updates.
The Website
Must Have:
- 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-Tracker: 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 programmers 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 OS 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.
Name Proposal
Propose a name for the Inkscape Extension Repository:
- The Factory
- Extension Factory
- INX Factory
Why Factory? Because it is not only a repository. ;-)
- The Furnace
Because Fire & Coal (Passion & Knowledge) are your tools for creating the extensions
Mockups
Here are some suggestions for what an extension repository might look like.
I have no idea of the detail of this project; I don't currently have the skills necessary to try implementing it. I'm also not sure whether it's a good idea for Inkscape to offer hosted repositories (using Redmine or Trac?) or whether it would be better to just leave it to the developer to use somewhere like GitHub or BitBucket and then use their APIs to pull some basic data onto the site. Legio noctis 10:19, 23 May 2010 (UTC)