Create a gist now

Instantly share code, notes, and snippets.

Embed
import javax.swing.*;
/*
* Export Freeplane mindmap branch to nested list in textile format e.g. for use in Redmine wiki
* - Save as <filename>.groovy in <freeplane directory>/scripts/
- Select node and start script from menu: Tools -> Scripts -> <filename>
*
*/
def process(thisNode, childPosition) {
def result =""
result = prefix(childPosition)+thisNode.text+suffix(childPosition)
thisNode.children.each {
result += process(it, childPosition + 1)
}
return result
}
def showDialog(String text) {
def dialog = new JDialog(ui.frame)
dialog.setSize(500, 700)
dialog.setLocationRelativeTo(ui.frame)
dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE)
dialog.add(new JScrollPane(new JTextArea(text)))
ui.addEscapeActionToDialog(dialog)
dialog.visible = true
}
def prefix(position){
if(position == 0){
return "h1. "
} else if (position == 1){
return "\nh2. "
} else {
return "*".multiply(position-1)+" "
}
}
def suffix(position){
if(position == 0){
return "\n"
} else if (position == 1){
return "\n\n"
} else {
return "\n"
}
}
def output = process(node, 0);
showDialog(output)
@62mkv

This comment has been minimized.

Show comment
Hide comment
@62mkv

62mkv Apr 22, 2016

Thanks again ! By the way, it's worth mentioning, that if you want to do it often, you could hold "Ctrl" while selecting item from "Tools\Scripts" and assign a hot-key to this script.

I've also added a modified version of your script that does not display a dialog, but rather copies the Textile into clipboard.

62mkv commented Apr 22, 2016

Thanks again ! By the way, it's worth mentioning, that if you want to do it often, you could hold "Ctrl" while selecting item from "Tools\Scripts" and assign a hot-key to this script.

I've also added a modified version of your script that does not display a dialog, but rather copies the Textile into clipboard.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment