freeplane-devtools
1. About this fork
The original devtools add-on has been developed and maintained by Volker Boerchers (github, sourceforge).
And its official websites are:
- description in freeplane wiki: DeveloperTools
- devtools .addon.mm files repository in sourceforge
- devtools sources repository in github
In this fork I united the last version from HaaiHenkie (v.0.9.27, look this thread) with the version from gpapp .
The instalable file (devtools-v0.10.1.addon.mm
) of the latest version of this fork can be downloaded from here.
bye,
edo
2. Description
This add-on collects some utilities that script and/or add-on developers will find useful.
The functions are available under Tools -> Development Tools
2.1. Features in standard version (v.0.9.27)
- Build add-on:
- adds all standard nodes, attributes and notes to the current map. Can be used with an empty Map to create a basic add-on.
- Package add-on for release:
- It copies the .mm to -.mm and updates the script node's context from the files lying around.
- Generate add-on documentation:
- Creates a snippet for the Freeplane add-ons wiki page.
- Insert binary:
- Asks for a file to insert as text of the current node (BASE64 encoded).
- Extract binary:
- Asks for a file to extract the BASE64 encoded binary in the current node to.
- Encode translation:
- Encode non-ASCII characters so that they don't get scrambled while packaging or installation. This function is included in Package add-on for release so you don't need this function.
- Menu item info:
- Shows technical details about a selected menu item.
- freeplane.dsld:
- Adds Eclipse editor support for predefined script bindings such as node, c, ui, textUtils, ...
2.2. Features added by gpapp version
- Devtools with property file support
- Freeplane devtools enhanced with some translation utilities
- Purpose
- Adds the ability to automatically load translations from the addon path when packaging.
- If a 'translations' directory exists, all translation nodes will be replaced with the translations in that directory.
- Translations must be named as LC.properties and must be in UTF-8!
2.3. Features added by this version
2.3.1. changes to add-on parameters
-
homepage
- change: It is a new property
- Its value is the URL address taken from the link of the root node
- This way you can use 'homepage' to define other add-on parameters.
For example:- "${homepage}/version.properties"
-
downloadUrl
- URL from the place where the AddOn file will be available for downloading.
- By default is the same as the homepage.
-
changes:
- You can define a different place or a subfolder of the homepage
- You can use other properties when defining the URL
- Example:
- "${homepage}/files/"
- Example for a Github add-on repository:
- ${homepage}/releases/download/${version}/
-
updateUrl
- URL of the file containing information (version, download url) on the latest version of this add-on.
- By default: "${homepage}/version.properties"
-
changes:
- You can define a different place or a subfolder of the homepage
- You can use other properties when defining the URL
- Example:
- "${homepage}/files/version.properties"
- Example for a Github add-on repository:
- ${homepage}/releases/latest/download/version.properties
-
addonsMenu
- change: It is a new property
- It defines the addon's main menu location
- By default it's menu 'main_menu_scripting'
- Use developer tool menuItemInfo to inspect menu location keys
- This attribute is mandatory
- Example:
- '/menu_bar/myAddons'
-
changeLogURL
- URL of the file containing the history of changes done to the add-on.
- By default: "S{homepage}/history.md"
-
changes:
- You can define a different place or a subfolder of the homepage
- You can use other properties when defining the URL
- Example:
- "S{homepage}/files/history.md"
- Example for a Github add-on repository:
- ${homepage}/releases/download/${version}/history.md
2.3.2. "actions" node
- When building a new add-on, now it adds a new "action" node.
- This node has children nodes with links to following menu commands:
- Build add-on
- Package add-on for publication
- Export Translations
- Import Translations
- This node is just to facilitate the access to these commands
2.3.3. new commands
-
Export Translation
- Exports translations as properties files to 'translations' folder
- This way you can work on the localization with other special tools
- I'm using IniTranslator to edit these
*.properties
files, but, as far as I know, there are plenty of different tools to do this.
- I'm using IniTranslator to edit these
-
Import Translation
- Imports translations from properties files
- Only if a 'translations' folder exists
- This way you can update the add-on with the localization files
- This feature is also automatically applied when packaging the add-on.
Added by GPAPP
- Imports translations from properties files
-
Inspect installed Add-On
- Inserts a node with the properties information of the installed add-on you select
- A dialog appears where you can select from a list with all the installed add-ons
-
generate Addons Properties Map
- Creates a mind map with the parameter information of all installed add-ons
- I use this to see if the installed add-on has the right URL to its hompage and updating information.
2.3.4. other changes
- "Build add-on" now proposes a menu text for the new scripts based on their file name
- It transform a camelCase file name into a normal phrase
- You can add the preference parameters as attributes in the "preferences.xml" node and it will automatically
- build the XML text as the child node
- add the preferences to the properties.default node, where you can define their default values
- add the preferences to the translations node, where you can define their Option panel labels and tooltips texts
- "Package add-on for publication" can open the new add-on for direct installation
- this makes developing iteration easier and faster
- "Package add-on for publication" automatically creates and updates 'history.md' file
- It automatically creates a "history.md" file using the information from the "changes" node
- history.md can handle multiple levels
- "Package add-on for publication" adds change log URL property into version.properties file
- Now it adds the changelogurl property to the version.properties file
- This way the user can download the History file directly from Freeplane's check updates dialog
3. Change Log
- v0.10.1
- saved with Freeplane 1.11.1 (not compatible with previous versions)
- Styles changed in addon .mm file
- Added generateAddonsPropertiesMap command with its own template file
- I use this to see if the installed add-on has the right URL to its hompage and updating information.
- List of changes in history.md now can handle multiple levels
- v0.9.31
- now it creates and updates 'history.md' file
- adds changelogurl property to version.properties file
- changeLogURL added as preference parameter
- v0.9.30
- bug fixes
- Added parametric preferences.xml
- v0.9.29
- Added inspectInstalledAddOn
- Added "Export Translations" and "Import Translations" to "actions" node
- Now it proposes a menu text for the new scripts based on its file name
- It deletes the 'actions' node in the add-on package
- "Export Translations" creates 'translations' folder if it doesn't exist
- releaseAddOn now can install the add-on directly
- v0.9.28
- Merged with GPAPP devtools version
- Added improved downloadUrl
- Improved updateUrl
- Added addonsMenu
- Added "actions" node with links to Build and Package commands
- Added script "exportTranslation"
- Added script "importTranslation"
- Added spanish translation
- v0.9.27
- #2847 Devtools' checkAddOn.groovy not compatible with Gradle plugin's directory structure
- v0.9.26
- Fix for #2798 : Menu Item Info error
- v0.9.25
- #2643 Devtools does not display its add-on name in menu
- #2464 test for missing English translations for scripts
- Set icon for devtools sub menu
- v0.9.24
- Fix for #2386 Special characters in add-on translations wrongly displayed
- #2642 Devtools creates wrong menuTitleKey for scripts
- v0.9.23
- Fix for Freeplane 1.7.x
- v0.9.22
- added extractBinary
- v0.9.21
- menuItemInfo: adjusted to Freeplane 1.4 while keeping compatibility to 1.3
- releaseAddOn: avoid problems with paths containing spaces
- checkAddOn: add check for the add-on homepage
- encodeTranslations: fix menu location
- v0.9.20
- fix path to version.properties
- #2234 dealing with spaces in filenames leads releaseAddOn.groovy to crash
- v0.9.16
- Fix Package add-on (Mantis #2106):
- no recursive searches for required nodes
- avoid out of memory exception on errors
- Fix Package add-on (Mantis #2106):
- v0.9.17
- fix translation encoding
- v0.9.18
- Fix bug in checkAddOn.groovy that prevented uninstall node from being updated.
- v0.9.19
- added Dutch translation - thanks to Haai Henkie!
- checkAddOn.groovy: ignore classpath, .project and freeplane.dsld from scripts/
- v0.9.15
- adjusted to new scripts location in Freeplane 1.3.x_beta
- update check and release scripts for installation of libs
- checkAddOn.groovy does a lot more checks and automation than before
- v0.9.14
- update for multiple scripting languages
- support for updateUrl
- v0.9.13
- update for new special translation key 'addons.${name}.description'
- checkAddOn.groovy checks the name of the script too
- v0.9.12
- menuItem.groovy: copy string to clipboard
- v0.9.11
- New: menuItemInfo.groovy
- fixes for 1.2.12
- v0.9.10
- New: addOnDoc.groovy
- releaseAddOn.groovy:
Creates the release map as model-only to cope with the map open hook that asks if the map should be installed.
The map is actually saved at the end. - new Icons from Predrag Cuklin
- v0.9.9
- Better error messages in case of missing scripts and zips to include.
Only look for scripts below the scripts node.
- Better error messages in case of missing scripts and zips to include.
- v0.9.7
- Add support for images.
Include icon and screenshot.
- Add support for images.
- v0.9.6
- Add missing file/write permission for insertBinary.groovy
- v0.9.5
- Make checkAddOn.groovy work for maps that are not saved
- v0.9.4
- Adjusted to new add-on format
- checkAddon.groovy: add script attributes and deinstallation rules; check case of add-on name
- v0.9
- Initial version