Starting with Freeplane 1.3.5_05 Groovy isn't your only choice for doing scripting in Freeplane. You can use all languages that (a) build on the Java Virtual Machine (JVM) and (b) provide a JSR 223 adapter. These include most of the large list of JVM-languages , e.g. JavaScript, Jython, Scala, Clojure, ...
Built-in: JavaScript
JavaScript can be used without any further installation. To use it just create a .js file in
var children = node.children;
print("children: " + children);
for (var i = 0; i < children.size(); i++) {
print('child ' + i + ' is ' + children.get(i).plainText);
}
node.detailsText = children.size() + " children";
node.style.textColor = Java.type("java.awt.Color").RED;
c.statusInfo = "JavaScript script done!";
You see that the convenient property access known from Groovy is also supported for JavaScript.
Installation of other languages
To install a new language you only have to install all required JAR (.jar) files in
Jython
Here a step-by-step instruction to install Jython, the Python implementation that runs on the JVM:
- Download the all-in-one Jython-JAR, e.g. from maven central. It contains not only the language and all necessary libraries but also the JSR 223 adapter.
- Copy
jython-standalone-
to.jar
./lib/ - Create the following test script as
(suffix ".py" is mandatory)/scripts/testJython.py - Restart Freeplane, so the script appears in the menu.
- run it via Tools -> Scripts -> Test Jython -> Execute...one selected node. Note that the same code is also valid in Groovy and JavaScript: c.statusInfo = "Jython's here: Node's text is " + node.text
Hints for scripting Freeplane in Python/Jython can be found on page Scripting! Jython.
Drawbacks
Groovy is the distinguished scripting language for Freeplane and will be most probably always be better supported than other languages. Here are the differences:
-
Since most Freeplane scripting happens in Groovy, you will more likely find one to help you with problems in the Freeplane forum.
-
Groovy is (so far) the only language to write formulas and filters with.
-
The Groovy scripting API is extended by some methods and tweaks (see a separate page ):
- Shortcut methods
- Simple references to other nodes like ''ID_1723255651.text''
-
The script editor only supports Groovy scripts.
A part of this drawbacks could be worked around in the future. It could be made possible for instance to change the language for formulas per map. (If you would like to implement that show up in the Developers forum.)