Add-ons (Develop)
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 is to create an add-on called myAddOn which puts:
- a hypothetical script myCoolScript.groovy in <freeplaneuserdir>/script/myCoolScript.groovy; and
- a hypothetical icon mycoolicon.png in <freeplaneuserdir>/icons/mycoolicon.png.
First prepare a directory called myAddOn with the following structure:
- myAddOn/scripts
- myAddOn/zips/icons
Second put the above files in this structure:
- Copy myCoolScript.groovy to myAddOn/scripts/myCoolScript.groovy.
- Copy mycoolicon.png to zips/icons/mycoolicon.png.
Third create and save the map myAddOn
- Create a new mind map and set the root name (core) to myAddOn
- Select Tools->Developer Tools->Build add-on to generate the template. First a dialog with a default name of the add-on displays. Accept the default name myAddOn, or you get an error message. Then a dialog displays a log of the actions which generate the template nodes.
- The root node myAddOn now has got a number of attributes. The first attribute is name with value myAddOn. This is the so-called technical name of the add-on which should not be changed. The root name (core) could be changed.
- From the other attributes of the root node, at least the version should be filled in. E.g. fill in for version v0.1 etc.
- The map myAddOn has a template node scripts. Create a child node with name myCoolScript.groovy.
- The map myAddOn has a template node zips. Create a child node with name icons. And create a child of icons with the name mycoolicon.png.
- Select (again) Tools->Developer Tools->Build add-on. This will add the required attributes of the script node and proposes proper deinstall rules (just accept them when you are asked for it).
- Select Tools > Developer Tools > Package add-on for publication. This will create the file myAddOn-v0.1.mm
Fourth, install and test:
- Select Tools->Scripts->Install Add-on (or via Tools->Add-ons).
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.