Difference between revisions of "Extension architecture proposals"

From Inkscape Wiki
Jump to navigation Jump to search
m (despam)
 
(19 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 
Please place your extension architecture proposals here. Everyone will review them and we will decided a course of action after we release 0.38.
 
Please place your extension architecture proposals here. Everyone will review them and we will decided a course of action after we release 0.38.
  
* ExtensionArchProposal
+
* [[ExtensionArchProposal]]
  
 
=== Tasks ===
 
=== Tasks ===
[ http://www.makedeal.net/comforters--animal-print-comforter/ animal print comforter ]  http://www.fundair.net/ [ http://www.samrain.com/medicare--trailblazer-medicare/ trailblazer medicare ][ http://www.dailybest.info/madonna-concert-tickets--madonna-concert-ticket/ madonna concert ticket ][ http://www.samrain.com/iron-beds--bed-girl-iron/ bed girl iron ][ http://www.dealsrain.com/event-planner--event-florida-planner/ event florida planner ][ http://www.samrain.com/distance-learning-degree--distance-learning-nursing-degree/ distance learning nursing degree ][ http://www.makedeal.net/unsecured-loan--loan-online-uk-unsecured/ loan online uk unsecured ][ http://www.samrain.com/gambling-casino-online-bonus--gambling-online-directory-online-casino-bonus-rating-review/ gambling online directory online casino bonus rating review ][ http://www.dealsrain.com/tahoe-vacation-rental--purolator-air-filter/ purolator air filter ][ http://www.samrain.com/ford-focus--ford-focus-dell/ ford focus dell ][ http://www.dealsrain.com/health-insurance-texas--unicare-health-insurance-texas/ unicare health insurance texas ][ http://www.dailybest.info/ameriquest--ameriquest-fraud-mortgage/ ameriquest fraud mortgage ][ http://www.dailyoffer.info/vegas-casinos--treasure-island-casino-las-vegas/ treasure island casino las vegas ][ http://www.samrain.com/business-degrees--business-management-degree/ business management degree ][ http://www.dailybest.info/cctv-camera--camera-cctv-outdoor/ camera cctv outdoor ][ http://www.dailyoffer.info/sportsman-guide--sportsmans-guide-coupon/ sportsmans guide coupon ][ http://www.fundair.net/mini-refrigerators--mini-wine-refrigerator/ mini wine refrigerator ][ http://www.dealsrain.com/direct-car-insurance--direct-line-car-insurance-quote/ direct line car insurance quote ][ http://www.samrain.com/magazine-subscriptions--motorcycle-magazine-subscription/ motorcycle magazine subscription ][ http://www.dailybest.info/fight-in-las-vegas--fight-las-schedule-vegas/ fight las schedule vegas ][ http://www.dailyoffer.info/timeshare-sale--africa-sale-share-south-time/ africa sale share south time ][ http://www.makedeal.net/bad-credit-car-loan--bad-bankruptcy-car-credit-loan/ bad bankruptcy car credit loan ][ http://www.fundair.net/reno-hotels--casino-hotel-reno-nv/ casino hotel reno nv ][ http://www.dailybest.info/refinance-house--house-loan-refinance/ house loan refinance ][ http://www.dailyoffer.info/business-loan--business-acquisition-loan/ business acquisition loan ][ http://www.dailybest.info/online-dating--free-online-dating-uk/ free online dating uk ][ http://www.dealsrain.com/apartments-for-rent--apartment-for-rent-philadelphia/ apartment for rent philadelphia ][ http://www.dailyoffer.info/canopies--shade-canopy/ shade canopy ][ http://www.samrain.com/telemarketing--stop-telemarketing/ stop telemarketing ][ http://www.makedeal.net/play-video-poker-online--play-free-online-video-poker/ play free online video poker ][ http://www.makedeal.net/criminal-record--iowa-criminal-record/ iowa criminal record ][ http://www.dealsrain.com/vioxx-lawsuit--vioxx-class-action-lawsuit/ vioxx class action lawsuit ][ http://www.samrain.com/free-dating-online--dating-free-online-gay/ dating free online gay ][ http://www.fundair.net/college-loan--acs-college-loan/ acs college loan ][ http://www.dealsrain.com/anderson-windows--anderson-egress-window/ anderson egress window ][ http://www.dailybest.info/american-express-credit-cards--american-credit-card-express-online/ american credit card express online ][ http://www.dailybest.info/credit-card-reader--credit-card-reader-writer/ credit card reader writer ][ http://www.dealsrain.com/flights--microsoft-flight-simulator-2004/ microsoft flight simulator 2004 ][ http://www.dealsrain.com/1800flowers--/ ][ http://www.fundair.net/poker-texas-holdem--texas-holdem-poker-online/ texas holdem poker online ][ http://www.fundair.net/server--process-server/ process server ][ http://www.dailyoffer.info/laminated-flooring--armstrong-laminated-flooring/ armstrong laminated flooring ][ http://www.dealsrain.com/payday-loan-no-fax--no-fax-payday-loan/ no fax payday loan ][ http://www.samrain.com/online-tramadol--cheapest-tramadol-online/ cheapest tramadol online ][ http://www.dealsrain.com/romantic-getaways--romantic-getaway-in-tennessee/ romantic getaway in tennessee ][ http://www.makedeal.net/lawyers--new-jersey-lawyer/ new jersey lawyer ][ http://www.dailyoffer.info/attorney--defense-attorney/ defense attorney ][ http://www.samrain.com/leather-sofas--leather-livingroom-sofa/ leather livingroom sofa ][ http://www.dailyoffer.info/pop-ups--stop-pop-ups/ stop pop ups ][ http://www.makedeal.net/fundraising-product--choice-product-fund-raising/ choice product fund raising ][ http://www.dealsrain.com/audio-conferences--audio-video-conference/ audio video conference ][ http://www.dealsrain.com/buy-a-college-degree--buy-college-degree-online/ buy college degree online ][ http://www.makedeal.net/school-online--online-computer-schools/ online computer schools ][ http://www.makedeal.net/phentermine--phentermine-phentermine/ phentermine phentermine ][ http://www.dealsrain.com/career-training--brokerage-career-training/ brokerage career training ][ http://www.fundair.net/jeep--jeep-wranglers/ jeep wranglers ][ http://www.makedeal.net/car-financing--houston-car-finance/ houston car finance ][ http://www.dealsrain.com/win-at-slot--in-machine-slot-win/ in machine slot win ][ http://www.samrain.com/play-poker-online--play-free-poker-game-online/ play free poker game online ][ http://www.dailybest.info/debt-consolidation-bad-credit--bad-credit-debt-consolidation-loan/ bad credit debt consolidation loan ][ http://www.dailybest.info/air-cleaner--air-chevrolet-cleaner/ air chevrolet cleaner ][ http://www.dealsrain.com/franchise-business--7-business-eleven-franchise/ 7 business eleven franchise ][ http://www.dealsrain.com/defense-attorney--attorney-defense-role/ attorney defense role ][ http://www.samrain.com/online-slot--play-fortune-slot-machine-online/ play fortune slot machine online ][ http://www.samrain.com/deca--deca-dbol/ deca dbol ][ http://www.dealsrain.com/free-personals--san-diego-free-personals/ san diego free personals ][ http://www.samrain.com/las-vegas-real-estate--the-truth-on-las-vegas-real-estate/ the truth on las vegas real estate ][ http://www.dailybest.info/golf--calloway-golf/ calloway golf ][ http://www.makedeal.net/cash-loan-online--online-payday-cash-loan/ online payday cash loan ][ http://www.samrain.com/fiber-optic-cables--cables-fiber-military-optic/ cables fiber military optic ][ http://www.fundair.net/atlanta-attorney--atlanta-back-injury-attorney/ atlanta back injury attorney ][ http://www.samrain.com/tax-preparation--irs-tax-preparation/ irs tax preparation ][ http://www.makedeal.net/big-and-tall--casual-male-big-and-tall/ casual male big and tall ][ http://www.fundair.net/business-schools--media-business-school/ media business school ][ http://www.dailybest.info/poker-com--partypoker-com-partypoker-com-partypoker-com-partypoker-com-partypoker-poker-com-poker/ partypoker com partypoker com partypoker com partypoker com partypoker poker com poker ][ http://www.samrain.com/flash-software--flash-slide-show-software/ flash slide show software ][ http://www.fundair.net/slots-casino--casino-penny-slot/ casino penny slot ][ http://www.samrain.com/discount-airline-tickets--discount-business-airline-ticket/ discount business airline ticket ][ http://www.samrain.com/golf-gift--corporate-golf-gift/ corporate golf gift ][ http://www.dailybest.info/pagemaker--convert-pagemaker-quark/ convert pagemaker quark ][ http://www.samrain.com/hotel-and-paris--paris-hotel-deal/ paris hotel deal ]  http://www.dealsrain.com/ [ http://www.makedeal.net/xanax-buy--buy-cheap-xanax-online/ buy cheap xanax online ][ http://www.dealsrain.com/herbs--herb-brooks/ herb brooks ][ http://www.fundair.net/accountants--cost-accountant/ cost accountant ][ http://www.dailybest.info/osteoarthritis--osteoarthritis-supplement/ osteoarthritis supplement ][ http://www.dealsrain.com/pcanywhere--black-screen-with-pc-anywhere/ black screen with pc anywhere ][ http://www.dailybest.info/bad-credit-loans--bad-credit-computer-loan/ bad credit computer loan ][ http://www.makedeal.net/las-vegas-motels--cheap-motel-in-las-vegas/ cheap motel in las vegas ][ http://www.dailyoffer.info/mortgage-refinancing-rate--connecticut-mortgage-rate-refinancing/ connecticut mortgage rate refinancing ][ http://www.makedeal.net/mortgage-bad-credit--100-bad-credit-mortgage/ 100 bad credit mortgage ][ http://www.dailybest.info/international-movers--international-mover-9-9-9-9/ international mover 9 9 9 9 ][ http://www.dealsrain.com/pos--sales-pos/ sales pos ][ http://www.dailyoffer.info/airline-ticket--airline-ticket-auction/ airline ticket auction ][ http://www.dailyoffer.info/sell-my-house--prayer-to-sell-a-house/ prayer to sell a house ][ http://www.samrain.com/fixed-rate-mortage--fixed-rate-second-mortgage/ fixed rate second mortgage ][ http://www.dailyoffer.info/internet-bingo--internet-bingo-game/ internet bingo game ][ http://www.samrain.com/avlimil--avlimil-sample/ avlimil sample ][ http://www.dailyoffer.info/las-vegas-homes--home-for-rent-in-las-vegas-nevada/ home for rent in las vegas nevada ][ http://www.samrain.com/expatriate-health-insurance--expatriate-health-insurance-plan/ expatriate health insurance plan ][ http://www.dailyoffer.info/mortgages-bad-credit--bad-credit-mortgage-remortgage-uk/ bad credit mortgage remortgage uk ][ http://www.samrain.com/windstar-cruise--windstar-cruise-discount/ windstar cruise discount ][ http://www.dailybest.info/online-game-poker--online-caribbean-poker-game/ online caribbean poker game ][ http://www.dealsrain.com/mcse-certification--phoenix-mcse-certification/ phoenix mcse certification ][ http://www.dailyoffer.info/cheap-domain-names--cheap-domain-name-register/ cheap domain name register ][ http://www.samrain.com/weight-loss-program--loss-new-program-weight/ loss new program weight ][ http://www.samrain.com/annuities--annuity-loan/ annuity loan ][ http://www.fundair.net/cruise-ship--odyssey-cruise-ship/ odyssey cruise ship ][ http://www.dealsrain.com/hearing-aids--costco-hearing-aids/ costco hearing aids ][ http://www.dailyoffer.info/degree--three-degree/ three degree ][ http://www.makedeal.net/poker-table--build-free-plan-poker-table/ build free plan poker table ][ http://www.makedeal.net/towel-bars--towel-bar-height/ towel bar height ][ http://www.fundair.net/about-tramadol--buy-cheap-tramadol/ buy cheap tramadol ][ http://www.dailybest.info/home-equity-line-of-credit--credit-equity-fee-home-line-no/ credit equity fee home line no ][ http://www.dailyoffer.info/matchmaking--matchmaking-personals/ matchmaking personals ][ http://www.dealsrain.com/tax-lawyer--canada-evasion-lawyer-tax-vancouver/ canada evasion lawyer tax vancouver ][ http://www.dailybest.info/free-credit-card--free-credit-report-no-credit-card-required/ free credit report no credit card required ][ http://www.makedeal.net/hair-transplant--hair-loss-transplant/ hair loss transplant ][ http://www.samrain.com/dental-plans-florida--delta-dental-florida-plan/ delta dental florida plan ][ http://www.samrain.com/student-credit-cards--student-account-credit-card-online/ student account credit card online ][ http://www.makedeal.net/tax-refund--file-tax-express-tax-refund/ file tax express tax refund ][ http://www.makedeal.net/tramadol--cheap-tramadol-online/ cheap tramadol online ][ http://www.fundair.net/jackpot-city--jackpot-city-online-casino/ jackpot city online casino ][ http://www.dealsrain.com/stock-fraud--fraud-lawyer-ohio-stock/ fraud lawyer ohio stock ][ http://www.samrain.com/patio-swing--door-patio-swing/ door patio swing ][ http://www.dailyoffer.info/car-loans--bad-credit-used-car-loan/ bad credit used car loan ][ http://www.makedeal.net/finances--business-and-finances/ business and finances ][ http://www.dailybest.info/bankrupty--bankruptcy-discharge/ bankruptcy discharge ][ http://www.samrain.com/floor-lamp--japanese-floor-lamp/ japanese floor lamp ][ http://www.dailyoffer.info/instant-loan--need-a-instant-car-loan-with-bad-credit/ need a instant car loan with bad credit ][ http://www.dailyoffer.info/celebrity-cruise--celebrity-cruise-ship-infinity/ celebrity cruise ship infinity ][ http://www.dealsrain.com/georgia-real-estate--st-simons-island-georgia-marina-real-estate/ st simons island georgia marina real estate ][ http://www.dailybest.info/baseball-betting--baseball-betting-pick/ baseball betting pick ][ http://www.makedeal.net/california-mortgage--california-mortgage-company/ california mortgage company ][ http://www.dealsrain.com/ionic-air-purifiers--air-ionic-pro-purifier-review/ air ionic pro purifier review ][ http://www.samrain.com/design-school--online-graphic-design-schools/ online graphic design schools ][ http://www.dailybest.info/training-management--management-training/ management training ][ http://www.dailybest.info/san-diego-real-estate--san-diego-beach-real-estate/ san diego beach real estate ][ http://www.fundair.net/floor-mats--catchall-floor-mat/ catchall floor mat ][ http://www.dailybest.info/tramadol-on-line--tramadol-line/ tramadol line ][ http://www.dailybest.info/hawaii-hotels--hotel-job-in-hawaii/ hotel job in hawaii ][ http://www.dailybest.info/money-lender--california-lender-money-temecula/ california lender money temecula ][ http://www.makedeal.net/united-airlines--united-airline-bankruptcy/ united airline bankruptcy ][ http://www.samrain.com/hair-dryers--conair-hair-dryers/ conair hair dryers ][ http://www.samrain.com/web-marketing--internet-marketing-services/ internet marketing services ][ http://www.dealsrain.com/hosting--hosting-company/ hosting company ][ http://www.makedeal.net/online-visa--lottery-online-visa/ lottery online visa ][ http://www.fundair.net/promotional-items--item-promotional-sale/ item promotional sale ][ http://www.makedeal.net/aprilaire-humidifiers--aprilaire-humidifier/ aprilaire humidifier ][ http://www.fundair.net/maui-hotel--maui-hotel-rating/ maui hotel rating ][ http://www.samrain.com/about-soma--soma-record/ soma record ][ http://www.fundair.net/allergies--allergy-sinus/ allergy sinus ][ http://www.dailyoffer.info/higher-education--higher-education-association/ higher education association ][ http://www.fundair.net/hydrocodone-order--order-hydrocodone-online/ order hydrocodone online ][ http://www.dealsrain.com/refinace-mortgage--mortgage-home-refinace/ mortgage home refinace ][ http://www.dailyoffer.info/bwl--entropy-bwl/ entropy bwl ][ http://www.dailybest.info/personal-injury-lawsuits--chicago-injury-lawsuit-personal/ chicago injury lawsuit personal ][ http://www.dailyoffer.info/timeshare-resale--island-resale-sanibel-share-time/ island resale sanibel share time ][ http://www.dailybest.info/rental-car--car-rental/ car rental ][ http://www.dailybest.info/internet-access-provider--fast-access-internet-provider/ fast access internet provider ][ http://www.dailyoffer.info/plano-apartment--apartment-plano-rental/ apartment plano rental ][ http://www.dealsrain.com/pools--online-pool/ online pool ]  http://www.dealsrain.com/ [ http://www.dailyoffer.info/project-management-training--management-project-training-uk/ management project training uk ][ http://www.fundair.net/new-york-hotel--new-york-new-york-hotel/ new york new york hotel ][ http://www.dailyoffer.info/time-shares--time-share-owner/ time share owner ][ http://www.dailybest.info/secured-loan-uk--9-9-9-9-company-loan-secured-uk/ 9 9 9 9 company loan secured uk ][ http://www.fundair.net/distance-learning-mba--course-distance-learning-mba/ course distance learning mba ][ http://www.makedeal.net/colleges--california-college/ california college ][ http://www.dailybest.info/gift--inspirational-gift/ inspirational gift ][ http://www.dailybest.info/cheapest-life-insurance--cheapest-uk-life-insurance/ cheapest uk life insurance ][ http://www.dailybest.info/boston-hotels--charles-hotel-boston/ charles hotel boston ][ http://www.makedeal.net/uk-car-insurance-company--car-insurance-company-in-the-uk/ car insurance company in the uk ][ http://www.fundair.net/skin-treatment--acne-sensitive-skin-treatment/ acne sensitive skin treatment ][ http://www.dailyoffer.info/wellbutrin--zyban-vs-wellbutrin/ zyban vs wellbutrin ][ http://www.dealsrain.com/microsoft-word--download-microsoft-word-2000/ download microsoft word 2000 ][ http://www.makedeal.net/minoxidil--facial-hair-minoxidil/ facial hair minoxidil ][ http://www.dealsrain.com/rental-cars--fox-car-rental/ fox car rental ][ http://www.dailyoffer.info/international-airfares--cheap-international-airfare-ticket/ cheap international airfare ticket ][ http://www.dailyoffer.info/winter-park--winter-park-florist/ winter park florist ][ http://www.fundair.net/orlando-resorts--westgate-resort-orlando-florida/ westgate resort orlando florida ][ http://www.fundair.net/online-dvd-rental--dvd-movie-online-rental/ dvd movie online rental ][ http://www.dealsrain.com/hair-care--kerastase-hair-care/ kerastase hair care ][ http://www.dailybest.info/earn-money--ways-kid-can-earn-money/ ways kid can earn money ][ http://www.fundair.net/las-vegas--las-vegas-brothel/ las vegas brothel ][ http://www.dealsrain.com/cheap-cigarette--american-spirit-cheaper-cigarette/ american spirit cheaper cigarette ][ http://www.samrain.com/spyware-stormer--spyware-stormer-registration-key/ spyware stormer registration key ][ http://www.dealsrain.com/herman-miller--herman-miller-cubicles/ herman miller cubicles ][ http://www.dealsrain.com/play-bingo--bingo-card-play/ bingo card play ][ http://www.fundair.net/reno-hotel--circus-circus-hotel-casino-reno-nv/ circus circus hotel casino reno nv ][ http://www.dealsrain.com/exercise-equipment--cardio-exercise-equipment/ cardio exercise equipment ][ http://www.dealsrain.com/budget-flight--budget-flight-ticket/ budget flight ticket ][ http://www.dealsrain.com/flonase--flonase-dosage/ flonase dosage ][ http://www.samrain.com/online-blackjack--casino-black-jack-betting-online/ casino black jack betting online ][ http://www.fundair.net/calgary-hotels--hotel-in-calgary-alberta/ hotel in calgary alberta ][ http://www.makedeal.net/storage-cabinet--rubbermaid-storage-cabinet/ rubbermaid storage cabinet ][ http://www.fundair.net/gift-boxes--unique-gift-box/ unique gift box ][ http://www.samrain.com/free-personal-ad--ad-aware-free-personal/ ad aware free personal ][ http://www.makedeal.net/designer-checks--designer-business-check/ designer business check ][ http://www.dailybest.info/phentermine-online-order--order-phentermine-phentermine-online/ order phentermine phentermine online ][ http://www.fundair.net/buy-fioricet--buy-cheap-fioricet/ buy cheap fioricet ][ http://www.dealsrain.com/visas--fleet-visa/ fleet visa ][ http://www.dailybest.info/hair-removal--information-on-laser-hair-removal/ information on laser hair removal ][ http://www.dealsrain.com/phoenix-university--university-of-phoenix-chicago/ university of phoenix chicago ][ http://www.dailybest.info/fsbo--fsbo-kc/ fsbo kc ][ http://www.dealsrain.com/houses--house/ house ][ http://www.dailybest.info/london-uk-hotel--hotel-london-national-royal-uk/ hotel london national royal uk ][ http://www.dealsrain.com/mortage--california-second-mortgage/ california second mortgage ][ http://www.dealsrain.com/marketing--real-estate-marketing/ real estate marketing ][ http://www.samrain.com/drug-detox--prescription-drug-detox/ prescription drug detox ][ http://www.dealsrain.com/mcafee--mcafee-virus/ mcafee virus ][ http://www.dealsrain.com/police-job--job-oklahoma-police/ job oklahoma police ][ http://www.fundair.net/new-york--manhattan-new-york-hotel/ manhattan new york hotel ][ http://www.dailybest.info/trade-show-display--display-graphic-layout-show-trade/ display graphic layout show trade ][ http://www.samrain.com/chair--futon-chair/ futon chair ][ http://www.dailybest.info/bet-s--bally-s-sports-bet/ bally s sports bet ][ http://www.dailyoffer.info/bingo-game--make-your-own-bingo-game/ make your own bingo game ][ http://www.dailyoffer.info/buy-online-phentermine--buy-phentermine-online/ buy phentermine online ][ http://www.dailyoffer.info/property-management-software--peak-property-management-software/ peak property management software ][ http://www.dailybest.info/lcd-tv--drop-down-lcd-tv/ drop down lcd tv ][ http://www.fundair.net/cash-in-advance-loan--cash-advance-loan-with-savings-account/ cash advance loan with savings account ][ http://www.samrain.com/video-storage--audio-video-storage/ audio video storage ][ http://www.makedeal.net/t-mobile--tmobile-international/ tmobile international ][ http://www.dailybest.info/debt-consolidation-loans--massachusetts-debt-consolidation-loan/ massachusetts debt consolidation loan ][ http://www.dailybest.info/distance-learning-course--distance-learning-course-in-online-learning/ distance learning course in online learning ][ http://www.fundair.net/first-aid-kit--aid-first-kit-medical-supply/ aid first kit medical supply ][ http://www.makedeal.net/caribean-cruise--royal-caribbean-cruise-coupon/ royal caribbean cruise coupon ][ http://www.dailyoffer.info/tickets--lion-king-ticket/ lion king ticket ]
+
 
 +
Design Phase:
 +
* Flesh out each category of functions in the API with ideas for what the functions should be
 +
* Solidify the underlying Extension infrastructure [Ted]
 +
* Create an example Extension package
 +
* Write a specification document, including:
 +
** Overview of Inkscape Extensions
 +
** Creating an Extension
 +
** Registering an Extension
 +
** Custom Extension Preferences
 +
** Extension API Definition
 +
 
 +
Implementation Phase:
 +
* Implement Extension API
 +
* Implement an Extension registry
 +
* Create Extension preferences dialog
 +
* Create web tool for contributing new Extensions
 +
 
 +
 
 +
=== Requirements ===
 +
 
 +
We would like the extension system to provide the following capabilities:
 +
 
 +
* Uses a general language binding system so it's easy to add new language binding support
 +
* Allows direct interaction with the document object model including changing styles, adding/removing defs and elements, etc.
 +
* Allows some limited interaction with the Inkscape UI such as manipulating grids, overlays, etc.
 +
* Allows direct interaction with file load/save/export/print subsystem
 +
* Guaranteed to work properly with the undo system, even if the extension is not written carefully
 +
* Well documented so is easy for people to learn how to make new extensions
 +
* Each plugin can be implemented, distributed, and managed independently of the core project
 +
* Should be easy to start learning how to create new plugins
 +
* Icons, buttons, and other UI elements for plugins fit seamlessly into main application GUI
 +
* User can easily select which plugins to automatically load into application at startup
 +
* Loading of plugins shall not seriously slow startup time or make a major impact on memory footprint
 +
* Failure of a plugin shall not leave the drawing in an inconsistent state
 +
* Main application must gracefully recover from plugin crashes or other serious problems with plugin execution
 +
* Dependencies for particular plugins must be clearly identified for user if missing
 +
 
 +
=== Extension ideas ===
 +
 
 +
*Plugin to send image to sign making peripherals like the Graphtec or Summa vinyl cutters' and printers'. Adobe Illustrator has such a thing so why not Insckape too?:)
 +
* Cross stitch generator (http://hawthorn.csse.monash.edu.au/~njh/programming/cross-stitch/)
 +
* Celtic knot editor: Using the standard winding number algorithm for Celtic knots build an interactive editor that forms the basic structure of the knots, allowing the user to edit the curve once generated. (Possible issue - getting the over/under rules correct)  Douglas Zongker's Celtic Knot Thingy is a possible resource: http://isotropic.org/uw/knot/
 +
* mail-merge
 +
* Integrate a capture of a Blender3D frame and then process that bitmap. From a Blender-viewer window?  From a simpler viewer? Not from a screen capture...higher resolution is desired...
 +
* Socket connection to other apps instead of file-based, where the state of socket connections will be autosaved and restorable after a crash...(since such on the fly work may not be easy to recreate then)
 +
* 3-d rotate - this is a really cool Kai (Kai's Vector Tools/Effects) plug-in for Illustrator
 +
* Inkify - it would be cool to have a plug-in that would take a normal object and make it look like it was drawn with ink.
 +
* Copy Adobe Illustrator's filters (punkify, bloat, calligraphize, etc)
 +
* Copy Dia's plugins
 +
* Look at Karbon14's plugins
 +
* PDF and Postscript import that converts all the type into lines as well as the included postscript vector objects and bitmaps
 +
* Randomize Size and Rotation of Objects
 +
* Create Cluster of objects from one seed with variable quantity, random distribution (noise types, gaussian, etc), variable rotation, opacity, and size
 +
* Zoom effect on shapes. Create an option where a zoom-like effect can be applied to a shape or set of shapes where more shapes are made larger and larger from the central anchor point of the shape(s) passed to this plugin
 +
* Color effects: Invert, Desaturate, etc. http://gimp-savvy.com/BOOK/index.html?node54.html
 +
 
 +
[[Category:Developer Discussion]]
 +
 
 +
=== Existing extensions not bundled with Inkscape ===
 +
 
 +
* [http://www.inkscapeforum.com/viewtopic.php?f=22&t=336 Trace Setup], prepares a document for tracing a bitmap image
 +
* [http://www.iki.fi/pav/software/textext/index.html textext], re-editable LaTeX objects in Inkscape
 +
* [http://www.kono.cis.iwate-u.ac.jp/~arakit/inkscape/inklatex.html InkLaTeX], simple drawing LaTeX text on Inkscape
 +
* [http://sourceforge.net/projects/animeasy animEasy], easy 2D animations
 +
 
 +
=== Inkscape Extension Archive Network ===
 +
 
 +
Initially, distributing extensions with Inkscape itself will be okay but ultimately for them to truly be extensions they should exist external to the core Inkscape project, which means we need some way to receive and manage contributions. Perl's CPAN provides an excellent model for how this type of module-contribution system can be made to work. Some important characteristics of CPAN worth adopting here:
 +
 
 +
  * Indexes of best items are available (e.g. 'best of')
 +
  * Redundant modules are tolerated
 +
  * Automate testing of included test suites on various platforms
 +
  * Naming requirements to be included in indexes
 +
  * Removal of malicious items
 +
  * Manual application for user id on the system
 +
  * Documentation for each module is online and nicely formatted
 +
  * Integrated bug tracking system
 +
  * Need to divide 'development' and 'stable'
 +
  * Need to identify poor style, over-complexity.
 +
  * Feedback to author should be personal so avoids public ranting
 +
  * Use of review forms instead of freeform feedback?
 +
  * Use of per-module discussion forums?
 +
  * Establish forum for thanks and positive feedback
 +
  * Like freshmeat/sourceforge, report on # downloads, vitality, etc.
 +
 
 +
=== Extension Architechture Feature Wishlist ===
 +
* View stderr for external processes on failure (DONE)
 +
* Report reason (what deps are missing) for being disabled on attempted use
 +
* multiline text input widget
 +
* enumerated values input widget (dropdownlistbox) (would make effects more self documenting in some cases)
 +
* mutually exclusive parameter groups (tabbed notebooks)
 +
* multiline text label for use instructions
 +
* consider extension API rework. Current problems: possible perfomance issues because file IO and full document parsing at extension end. Also, access to internal inkscape functions is limited to invoking another copy of inkscape, wich leads again to long execution times and lack of flexibility. Proposed change: two-way communication via stdin/stdout in XML protocol, wich must allow partial document modification and allow access to inkscape internal functions, such as bounding box calculation, bezier curves subdivision, etc.
 +
 
 +
=== See Also ===
 +
* [[ScriptingHOWTO]]
 +
* [http://sourceforge.net/mailarchive/message.php?msg_id=2057634 Ted's Plug-in Research from [[SodiPodi]]]
 +
 
 +
[[Category:Developer Discussion]]
 +
[[Category:Extensions]]
 +
[[Category:Wiki Attic]]

Latest revision as of 05:53, 13 July 2016

Please place your extension architecture proposals here. Everyone will review them and we will decided a course of action after we release 0.38.

Tasks

Design Phase:

  • Flesh out each category of functions in the API with ideas for what the functions should be
  • Solidify the underlying Extension infrastructure [Ted]
  • Create an example Extension package
  • Write a specification document, including:
    • Overview of Inkscape Extensions
    • Creating an Extension
    • Registering an Extension
    • Custom Extension Preferences
    • Extension API Definition

Implementation Phase:

  • Implement Extension API
  • Implement an Extension registry
  • Create Extension preferences dialog
  • Create web tool for contributing new Extensions


Requirements

We would like the extension system to provide the following capabilities:

  • Uses a general language binding system so it's easy to add new language binding support
  • Allows direct interaction with the document object model including changing styles, adding/removing defs and elements, etc.
  • Allows some limited interaction with the Inkscape UI such as manipulating grids, overlays, etc.
  • Allows direct interaction with file load/save/export/print subsystem
  • Guaranteed to work properly with the undo system, even if the extension is not written carefully
  • Well documented so is easy for people to learn how to make new extensions
  • Each plugin can be implemented, distributed, and managed independently of the core project
  • Should be easy to start learning how to create new plugins
  • Icons, buttons, and other UI elements for plugins fit seamlessly into main application GUI
  • User can easily select which plugins to automatically load into application at startup
  • Loading of plugins shall not seriously slow startup time or make a major impact on memory footprint
  • Failure of a plugin shall not leave the drawing in an inconsistent state
  • Main application must gracefully recover from plugin crashes or other serious problems with plugin execution
  • Dependencies for particular plugins must be clearly identified for user if missing

Extension ideas

  • Plugin to send image to sign making peripherals like the Graphtec or Summa vinyl cutters' and printers'. Adobe Illustrator has such a thing so why not Insckape too?:)
  • Cross stitch generator (http://hawthorn.csse.monash.edu.au/~njh/programming/cross-stitch/)
  • Celtic knot editor: Using the standard winding number algorithm for Celtic knots build an interactive editor that forms the basic structure of the knots, allowing the user to edit the curve once generated. (Possible issue - getting the over/under rules correct) Douglas Zongker's Celtic Knot Thingy is a possible resource: http://isotropic.org/uw/knot/
  • mail-merge
  • Integrate a capture of a Blender3D frame and then process that bitmap. From a Blender-viewer window? From a simpler viewer? Not from a screen capture...higher resolution is desired...
  • Socket connection to other apps instead of file-based, where the state of socket connections will be autosaved and restorable after a crash...(since such on the fly work may not be easy to recreate then)
  • 3-d rotate - this is a really cool Kai (Kai's Vector Tools/Effects) plug-in for Illustrator
  • Inkify - it would be cool to have a plug-in that would take a normal object and make it look like it was drawn with ink.
  • Copy Adobe Illustrator's filters (punkify, bloat, calligraphize, etc)
  • Copy Dia's plugins
  • Look at Karbon14's plugins
  • PDF and Postscript import that converts all the type into lines as well as the included postscript vector objects and bitmaps
  • Randomize Size and Rotation of Objects
  • Create Cluster of objects from one seed with variable quantity, random distribution (noise types, gaussian, etc), variable rotation, opacity, and size
  • Zoom effect on shapes. Create an option where a zoom-like effect can be applied to a shape or set of shapes where more shapes are made larger and larger from the central anchor point of the shape(s) passed to this plugin
  • Color effects: Invert, Desaturate, etc. http://gimp-savvy.com/BOOK/index.html?node54.html

Existing extensions not bundled with Inkscape

  • Trace Setup, prepares a document for tracing a bitmap image
  • textext, re-editable LaTeX objects in Inkscape
  • InkLaTeX, simple drawing LaTeX text on Inkscape
  • animEasy, easy 2D animations

Inkscape Extension Archive Network

Initially, distributing extensions with Inkscape itself will be okay but ultimately for them to truly be extensions they should exist external to the core Inkscape project, which means we need some way to receive and manage contributions. Perl's CPAN provides an excellent model for how this type of module-contribution system can be made to work. Some important characteristics of CPAN worth adopting here:

  * Indexes of best items are available (e.g. 'best of')
  * Redundant modules are tolerated
  * Automate testing of included test suites on various platforms
  * Naming requirements to be included in indexes
  * Removal of malicious items
  * Manual application for user id on the system
  * Documentation for each module is online and nicely formatted
  * Integrated bug tracking system
  * Need to divide 'development' and 'stable'
  * Need to identify poor style, over-complexity.
  * Feedback to author should be personal so avoids public ranting
  * Use of review forms instead of freeform feedback?
  * Use of per-module discussion forums?
  * Establish forum for thanks and positive feedback
  * Like freshmeat/sourceforge, report on # downloads, vitality, etc.

Extension Architechture Feature Wishlist

  • View stderr for external processes on failure (DONE)
  • Report reason (what deps are missing) for being disabled on attempted use
  • multiline text input widget
  • enumerated values input widget (dropdownlistbox) (would make effects more self documenting in some cases)
  • mutually exclusive parameter groups (tabbed notebooks)
  • multiline text label for use instructions
  • consider extension API rework. Current problems: possible perfomance issues because file IO and full document parsing at extension end. Also, access to internal inkscape functions is limited to invoking another copy of inkscape, wich leads again to long execution times and lack of flexibility. Proposed change: two-way communication via stdin/stdout in XML protocol, wich must allow partial document modification and allow access to inkscape internal functions, such as bounding box calculation, bezier curves subdivision, etc.

See Also