Difference between revisions of "INX extension descriptor format"

From Inkscape Wiki
Jump to navigation Jump to search
(Creating)
 
(start about INX file)
Line 24: Line 24:


== How to Write an INX File ==
== How to Write an INX File ==
'''Example:'''
  <inkscape-extension>
    <_name>{Friendly Extension Name}</_name>
    <id>{org.domain.sub-domain.extension-name}</id>
      <dependency type="executable"
                  location="[extensions|{location}]">program.ext</dependency>
      <param name="{argumentName}" type="[int|float|string]"
            min="{number}" max="{number}"
            _gui-text="{Friendly Argument Name}">{default value}</param>
    <effect>
      <object-type>[all|{element type}]</object-type>
        <effects-menu>
          <submenu _name="{Extension Group Name}"/>
        </effects-menu>
    </effect>
    <script>
      <command reldir="extensions"
              interpreter="[python|perl|bash|{some other}]">program.ext</command>
    </script>
  </inkscape-extension>
[[Category:Developer Documentation]]
[[Category:Help Wanted]]

Revision as of 22:54, 19 August 2006

How an extension must work and how to write an INX file.

It's only an working draft!

About the Inkscape Extension Interface

The inkscape call a program with some arguments and as the last argumet it tells to the extension program where is the temporay SVG file to do the work. The temporay SVG file represents the actual state of the working SVG.

After the extension program work it writes the modified SVG to the default output, the Inkscape get this and update the SVG for the user.

An Inkscape Developer can say it better...


How an Extension Must Work

  • Recive the inkscape arguments.
  • Clear temp files if it creates one.
  • Write full changed SVG to the default output.
  • Don't break an xml:space="preserve" area.
  • Send error text to the error output and help the user.

An Inkscape Developer can say more?


How to Write an INX File

Example:

 <inkscape-extension>
   <_name>{Friendly Extension Name}</_name>
   <id>{org.domain.sub-domain.extension-name}</id>
     <dependency type="executable"
                 location="[extensions|{location}]">program.ext</dependency>
     <param name="{argumentName}" type="[int|float|string]"
            min="{number}" max="{number}"
            _gui-text="{Friendly Argument Name}">{default value}</param>
   <effect>
     <object-type>[all|{element type}]</object-type>
       <effects-menu>
         <submenu _name="{Extension Group Name}"/>
       </effects-menu>
   </effect>
   <script>
     <command reldir="extensions"
              interpreter="[python|perl|bash|{some other}]">program.ext</command>
   </script>
 </inkscape-extension>