summaryrefslogtreecommitdiffstats
path: root/share/extensions/docs/authors/interpreters.rst
diff options
context:
space:
mode:
Diffstat (limited to 'share/extensions/docs/authors/interpreters.rst')
-rw-r--r--share/extensions/docs/authors/interpreters.rst114
1 files changed, 114 insertions, 0 deletions
diff --git a/share/extensions/docs/authors/interpreters.rst b/share/extensions/docs/authors/interpreters.rst
new file mode 100644
index 0000000..254abd6
--- /dev/null
+++ b/share/extensions/docs/authors/interpreters.rst
@@ -0,0 +1,114 @@
+.. _supported_interpreters:
+
+Supported Interpreters
+======================
+
+Inkscape Script extensions can use one of the following interpreters:
+
++----------+------------------+----------------------+------------------+
+| Language | Name (in INX | Name (in | Default value |
+| | file) | preferences.xml) | |
++==========+==================+======================+==================+
+| Perl | "perl" | "perl-interpreter" | "perl" |
+| | | | |
+| | | | "wperl" (Windows;|
+| | | | since Inkscape |
+| | | | 1.0) |
++----------+------------------+----------------------+------------------+
+| Python | "python" | "python-interpreter" | "python" |
+| | | | |
+| | | | "pythonw" |
+| | | | (Windows) |
++----------+------------------+----------------------+------------------+
+| Ruby | "ruby" | "ruby-interpreter" | "ruby" |
++----------+------------------+----------------------+------------------+
+| Shell | "shell" | "shell-interpreter" | "sh" |
++----------+------------------+----------------------+------------------+
+
+(Code reference: `src/extension/implementation/script.cpp`_)
+
+.. _src/extension/implementation/script.cpp: https://gitlab.com/inkscape/inkscape/-/blob/master/src/extension/implementation/script.cpp
+
+.. _inx_files:
+
+INX files
+---------
+
+Within the INX file, you need to indicate the interpreter which will be
+used to execute the script, using the name given in the table above:
+
+Example:
+
+::
+
+ <inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
+ ...
+ <script>
+ <command reldir="extensions" interpreter="python">my_extension.py</command>
+ </script>
+ </inkscape-extension>
+
+.. _selecting_a_specific_interpreter_version_via_preferences_file:
+
+Selecting a specific interpreter version (via preferences file)
+---------------------------------------------------------------
+
+In the preferences.xml file, a user can set a specific executable of the
+interpreter that Inkscape should use to execute extensions of a specific
+type.
+
+This is especially useful, if the system's default version of the
+interpreter is incompatible with the one used by Inkscape's extension
+subsystem (e.g. Inkscape extensions that rely on inkex.py will only work
+with Python 2 (as of Inkscape 0.92.1), while on some recent Linux
+distributions, the default Python version used is Python 3, which
+results in errors during execution of extensions).
+
+To change the executable that will be used to run script extensions to a
+different value than the default value in the above table, you need to
+do the following:
+
+#. quit all running Inkscape processes
+#. Open your perferences.xml file with a text editor (find the exact
+ location of the file by going to Edit -> Preferences -> System: User
+ Preferences)
+#. search the group which holds settings for the extension system itself
+ and options of various extensions:
+ ::
+
+ <group
+ id="extensions"
+ …
+ org.ekips.filter.gears.teeth="24"
+ org.ekips.filter.gears.pitch="20"
+ org.ekips.filter.gears.angle="20" />
+
+#. Insert a key for the interpreter, for example 'python-interpreter'
+ for setting the program that should be used to run python extensions,
+ and set the string to the absolute path to the python binary which is
+ compatible with Inkscape's current extension scripts (in the example
+ below, the path is "/usr/bin/python2.7". It will look different on
+ Windows systems.):
+ ::
+
+ <group
+ id="extensions"
+ python-interpreter="/usr/bin/python2.7"
+ …
+ org.ekips.filter.gears.teeth="24"
+ org.ekips.filter.gears.pitch="20"
+ org.ekips.filter.gears.angle="20" />
+
+#. Save the preferences file, and launch Inkscape to test the
+ extensions.
+
+.. _see_also:
+
+See Also
+--------
+
+- `INX Parameters <INX_Parameters>`__
+- `ScriptingHOWTO <ScriptingHOWTO>`__
+
+`Category:Developer Documentation <Category:Developer_Documentation>`__
+`Category:Extensions <Category:Extensions>`__