Difference between revisions of "Add-ons (Develop)"

From Freeplane - free mind mapping and knowledge management software
m (Steps towards your own add-on)
(moved Jokro's installation instructions to the add-on page; added some more details)
Line 8: Line 8:
 
==Preparation: Install developer tools ==
 
==Preparation: Install developer tools ==
  
Download the [http://freeplane.sourceforge.net/wiki/index.php/Add-ons#Add-on_Insert_Inline_Image Developer Tools] from the [[Add-ons]] page. It provides scripts that relieves you from most of the tedious work. An easy way to do so:
+
Update to the most recent Freeplane version and install the [http://freeplane.sourceforge.net/wiki/index.php/Add-ons#Add-on_Insert_Inline_Image Developer Tools] from the [[Add-ons]] page (follow the installation instructions there). The add-on provides scripts that relieves you from most of the tedious work.
#In Freeplane select ''Tools > Add-ons > Search add-ons > Visist add-on page''
+
 
#Search your add-on; choose download
+
The add-on functions are available in: ''Tools > Developer tools''
#Save the add-on on your computer, e.g. on the desktop
 
#Select ''Tools > Addons > Search and install''
 
#Select ''directory icon'' ; find and select the file you just downloaded (e.g. on your desktop)
 
#Select ''Install''
 
#Restart Freeplane
 
#The add-on functions are available in: ''Tools > Developer tools''
 
  
  
Line 37: Line 31:
 
# Copy <tt>mycoolicon.png</tt> to <tt>zips/icons/mycoolicon.png</tt>.
 
# Copy <tt>mycoolicon.png</tt> to <tt>zips/icons/mycoolicon.png</tt>.
 
# In the map create a new subnode of the ''zips'' node with name ''icons''. Create a ''mycoolicon.png'' subnode under ''icons''. The node hierarchy then is ''zips->icons->mycoolicon.png''.
 
# In the map create a new subnode of the ''zips'' node with name ''icons''. Create a ''mycoolicon.png'' subnode under ''icons''. The node hierarchy then is ''zips->icons->mycoolicon.png''.
 +
# Invoke ''Tools->Developer Tools->Build add-on'' again. This will add the required attributes of the script node and proposes proper ''deinstall'' rules (just accept them when you are asked for it).
 
# Invoke ''Package add-on for publication''. This will create the file <tt>myCoolAddOn-v0.1.mm</tt> which can be installed via ''Tools->Scripts->Install Add-on'' (or via ''Tools->Add-ons'').
 
# Invoke ''Package add-on for publication''. This will create the file <tt>myCoolAddOn-v0.1.mm</tt> which can be installed via ''Tools->Scripts->Install Add-on'' (or via ''Tools->Add-ons'').
  
But before publishing your add-on read all notes in the add-on map. They are meant for developers, not for users since users are not expected to read an add-on package. The notes should guide you to add all missing information.
+
But before publishing your add-on read all notes in the add-on map. (They are meant for developers, not for users since users are not expected to read an add-on package.) The notes should guide you to add all missing information. Carefully revise the defaults that the ''Build add-on'' script has entered.
  
 
[[Category:Extension]]
 
[[Category:Extension]]

Revision as of 20:05, 19 November 2011

This page will provide detailed information about developing Freeplane add-ons.

Add-ons are installed in the Freeplane user directory (see Tools->Open user directory). They may contain any number of scripts and Zip archives which are unpacked on installation. Combinations of scripts and Zips especially interesting since this enables you to package scripts with required libraries/JARs/class files. For instance it's possible to bundle some Groovy scripts for creating diagrams with the JFreechart library - so there's no need to download and install the JFreechart libraries anymore.

Since plugins (such as the Scripting, LaTeX or Formula plugin you know) may also be installed into the Freeplane user directory, add-ons may even provide plugins.


Preparation: Install developer tools

Update to the most recent Freeplane version and install the Developer Tools from the Add-ons page (follow the installation instructions there). The add-on provides scripts that relieves you from most of the tedious work.

The add-on functions are available in: Tools > Developer tools


Steps towards your own add-on

The goal of the example add-on is to put:

  1. an existing script myCoolScript.groovy in <freeplaneuserdir>/script/myCoolScript.groovy; and
  2. an icon mycoolicon.png in <freeplaneuserdir>/icons/mycoolicon.png.


The steps to follow are:

  1. In Freeplane create a new empty map by Ctrl+n.
  2. Invoke Tools->Developer Tools->Build add-on. You will be asked for the name of your add-on. Answer My Cool Add-on
  3. Look through the messages in the info box that is shown if everything looks alright. The name attribute of the root node will be myCoolAddOn. This is the identifying technical name of the add-on while My Cool Add-on will be subject to translation.
  4. Set the version attribute of the root node to v0.1
  5. Create a new directory somewhere with the technical name of the add-on, myCoolAddOn.
  6. Save the new map to myCoolAddOn/myCoolAddOn.mm.
  7. Copy myCoolScript.groovy to myCoolAddOn/scripts/myCoolScript.groovy.
  8. In the map create a new subnode of the scripts node with name myCoolScript.groovy.
  9. Copy mycoolicon.png to zips/icons/mycoolicon.png.
  10. In the map create a new subnode of the zips node with name icons. Create a mycoolicon.png subnode under icons. The node hierarchy then is zips->icons->mycoolicon.png.
  11. Invoke Tools->Developer Tools->Build add-on again. This will add the required attributes of the script node and proposes proper deinstall rules (just accept them when you are asked for it).
  12. Invoke Package add-on for publication. This will create the file myCoolAddOn-v0.1.mm which can be installed via Tools->Scripts->Install Add-on (or via Tools->Add-ons).

But before publishing your add-on read all notes in the add-on map. (They are meant for developers, not for users since users are not expected to read an add-on package.) The notes should guide you to add all missing information. Carefully revise the defaults that the Build add-on script has entered.