Difference between revisions of "Script Templates"

(Initial version)
 
m
Line 11: Line 11:
 
Script language determination is based simply off file extension. So a <code>FFT.rb</code> script would be indexed under the <code>Templates > Ruby</code> menu.
 
Script language determination is based simply off file extension. So a <code>FFT.rb</code> script would be indexed under the <code>Templates > Ruby</code> menu.
  
For examples of how the existing templates are structured and distributed, take a look at the core [https://github.com/scijava?query=scripting Sci-Java scripting projects].
+
For examples of how the existing templates are structured and distributed, take a look at the core [https://github.com/scijava?query=scripting SciJava scripting projects].
  
 
= Template Best Practices =
 
= Template Best Practices =

Revision as of 14:49, 20 October 2014

Template:Scripting

Templates are pre-written scripts in a particular scripting language. They can be distributed as any other plugin, and automatically discovered by the Script Editor. Templates thus present an excellent way to demonstrate a particular operation to a wide audience of users.

Available templates are sorted by language under the Templates menu of the Script Editor. The contents of a template will be loaded into the editor window when selected. The script can then be inspected, executed and modified as normal.

Adding A New Template

The Script Editor will automatically search the script-templates directory and register any discovered scripts as templates. For example, a Mavenized project could add a sample script in src/main/resources/script-templates and it would be packaged into the appropriate location of the resultant .jar.

Script language determination is based simply off file extension. So a FFT.rb script would be indexed under the Templates > Ruby menu.

For examples of how the existing templates are structured and distributed, take a look at the core SciJava scripting projects.

Template Best Practices

Above all else, templates should be well documented. Templates are intended to explain specific functionality in a given language, to users who may have limited experience with the language or programming/scripting in general.

Ideally, a template will be focused on an a single objective (e.g. opening an image, calculating a threshold, operating on a directory, etc...).

It is especially helpful to document how the template can be adapted to meet the user's needs.