I devised a couple of strategies for attaching my notes to other places on my system where url links were ugly or inconvenient. It turned out to be a system that’s pretty effective in a lot of applications; even ones that provide a linking system to begin with.
The basic idea is that you can use [[links]] like you would inside of nvALT, or WikiLinks (camelcased words with no spaces) anywhere you can put text, then you run a script or Service (I have both for you, in part 2) with that text selected and it will open the related note. If you put the action on a hotkey, you can just select the text and press your shortcut to jump straight to the note. That’s tomorrow, though.
This first one I’m sharing is specifically for Mindjet MindManager, though, and it uses real urls. This is where I started, before I got the idea to reference and create notes with wiki links. This script goes through all selected nodes in a MindManager mind map, taking their title text and creating a note named for it, then adding the link to that note as a hyperlink on the node. Now you can just click the little rocket next to the node it to open the note in nvALT1. Notes are tagged based on the map’s main topic title for fast searching for an entire project’s notes. This screenshot might help it make more sense.
Yes, MindManager has built-in support for notes, and on occasions when you’re sharing them with others it’s preferable to use the internal ones. When I’m brainstorming, though, having my notes available outside of a single application and universally accessible is more useful. Look at me feeling obligated to explain myself.
Run this script from anywhere, as long as MindManager is open and has at least one topic selected. There are a few settings you can adjust at the top of the script. I don’t know how many nerdy MindManager users there are for this, but if you have any questions, let me know. At the rate of interest this is likely to have, it’ll be easier to assist one on one than try to explain everything at this point.
Stay tuned for part 2, wherein I provide you with something more universally useful.
(* mindjet2nvaltGoes through selected nodes in MindJet Manager and creates nvALT notes for them, adding a rocket icon to each node which will locate the note when clicked. If the node has a note attached, it is used as the content of the nvALT note.Copyright 2012 Brett TerpstraLicense is granted to use and modify for personal useDo not distribute modified copies without permission*)----====User Config====------ by default, this property will avoid changing a -- link on a node in case the title changes but you -- want the link to remain connectedpropertyoverwriteLinks:true-- centralTopicAsTags will convert the title of-- map's main node into tags, allowing you to group -- them together with nvALT or Spotlight searchespropertycentralTopicAsTags:true-- centralTopicAsNotePrefix will prefix "[Central Topic title]: "-- to the title of the note, if that's how you prefer to searchpropertycentralTopicAsNotePrefix:false---===End User Config===---property_ucChars_:"AÄÁÀÂÃÅĂĄÆBCÇĆČDĎĐEÉÈÊËĚĘFGHIÍÌÎÏJKLĹĽŁMNÑŃŇ"&¬"OÖÓÒÔÕŐØPQRŔŘSŞŠŚTŤŢUÜÚÙÛŮŰVWXYÝZŽŹŻÞ"property_lcChars_:"aäáàâãåăąæbcçćčdďđeéèêëěęfghiíìîïjklĺľłmnñńň"&¬"oöóòôõőøpqrŕřsşšśtťţuüúùûůűvwxyýzžźżþ"tellapplication"Mindjet MindManager"settheDocumenttodocument1settheSelectiontoselectionoftheDocumentset_projtocentraltopicoftheDocumentiftheSelectionis notequal to{}thenrepeatwith_tintheSelectionifhyperlinkURLof_tismissing valueoroverwriteLinksistruethenset_maptoPOSIXpathof(fileoftheDocumentasalias)ifcentralTopicAsNotePrefixistruethenset_nameto(titleof_proj)&": "&titleof_telseset_nametotitleof_tendifset_notetonotesof_tas stringifcentralTopicAsTagsistruethenset_tagsto"#"&myreplace_string(" ","-",mylowercase_string(titleof_proj))elseset_tagsto""endifset_linktomycreate_nv_note(_name,_note,_map,_tags)sethyperlinkURLof_tto_linkelseifhyperlinkURLof_tis notmissing valuethenset_urltohyperlinkURLof_ttellapplication"Finder"toopen location_urlreturnendifendrepeattellapplication"Mindjet MindManager"toactivateelsedisplay dialog"You must have at least one node selected"endifendtell-- creates a new note and returns a url for itoncreate_nv_note(_title,_note,_map,_tags)setnewlinkto""if_noteismissing valueor_noteis equalto""thensetnewlinkto"nvalt://make/?title="&_title&"&tags="&_tags&"&txt="&"New note from Mind Map <file://"&myreplace_string(" ","%20",_map)&">"elsesetnewlinkto"nvalt://make/?title="&_title&"&tags="&_tags&"&txt="&_noteendiftellapplication"Finder"toopen locationnewlinkset_linkto"nvalt://find/"&_titlereturn_linkendcreate_nv_noteonreplace_string(thisStr,thatStr,origString)-- credit: Jon Pugh <http://www.seanet.com/~jonpugh/>set{oldDelim,AppleScript's text item delimiters}to{AppleScript's text item delimiters,thisStr}settheListtotextitemsoforigStringsetAppleScript's text item delimiterstothatStrsettheStringtotheListas stringsetAppleScript's text item delimiterstooldDelimreturntheStringendreplace_stringonlowercase_string(theText)-- credit: <http://applescript.bratis-lover.net/library/string/>localupper,lower,theTexttryreturnmytranslateChars(theText,my_ucChars_,my_lcChars_)onerroreMsgnumbereNumerror"Can't lowerString: "&eMsgnumbereNumendtryendlowercase_stringontranslateChars(theText,fromChars,toChars)localNewtext,fromChars,toChars,char,newChar,theTexttrysetNewtextto""if(countfromChars)≠(counttoChars)thenerror"translateChars: From/To strings have different lenght"endifrepeatwithcharintheTextsetnewChartocharsetxtooffsetofcharinfromCharsifxis not0thensetnewChartocharacterxoftoCharssetNewtexttoNewtext&newCharendrepeatreturnNewtextonerroreMsgnumbereNumerror"Can't translateChars: "&eMsgnumbereNumendtryendtranslateChars
I went down a deep, deep rabbit hole trying to make it possible for the notes to link back to the topic on the map. MindManager can do this internally, but exposes no url scheme for it. I built a background applet with a ‘mmgo:’ url scheme, even got it working, but there are too many problems with it to share. Some insanity is best kept to one’s self. ↩