iThoughtsX: linking to specific nodes in a mindmap

Hi all - I use iThoughtsX as for mindmaps. A great feature is you can right-click any node and ‘copy as link’. However, invoking Hook only links it to the overall document, not the specific node. Any idea how to enable these deep links?

2 Likes

This could be automated I suppose, but here’s what you can do for now:

Select the node you want to link to in an iThoughts map, then navigate to Edit / Copy as / Link to put a copy of that node’s link on your clipboard. Don’t use Hook for this step.

Navigate to the document or site or whatever that you want Hook to link to the iThoughts mind map’s node copied above. Invoke Hook, and choose Hook to Copied Link.

You’re linked up now.

A think to remember about Hook is that you don’t always need Hook’s automation to copy links for you. You can do that manually like above.

Have fun and keep safe.

Katie

4 Likes

Hi @katie_v

Would you know how this could in general be automated? Really keen on being able to invoke hook on the node level and would be happy to explore if i knew where to go

1 Like

Does the link include the node’s UUID?

I have an open source project that does things with the exported CSV file from iThoughts(X) and the UUID is present in this CSV.

Not particularly to push filterCSV but I could, for example, teach it to export URLs to link to matching nodes. (Nodes that match some criterion.) But this would only reliably work if the URL embedded the node ID.

Looks like it does.

Copy As > Link yields a link with the path to the document and the UUID of that node:

ithoughts://open?path=/iCloud/Quick%20Thoughts.itmz&topic=8F23235B-BA03-4817-96EA-14F137BD08ED

Katie

2 Likes

I suppose the simplest approach would be to use System Preferences to assign an Application shortcut to that menu item. Then

  • Select node
  • execute your shortcut to grab the node link
  • invoke Hook and use ⌘V to Hook to Copied link

Katie

1 Like

I just tried that on this iPad and iThoughts on iPad OS took me right to my target node, even though the tree the node was in was collapsed.

I think one could do quite a lot with that, especially confecting such links from the exported CSV from iThoughts.

1 Like

An example might be:

  1. List the Level 2 nodes’ text. (Parsing the CSV export from iThoughts.)
  2. Have the user select one. (In some GUI.)
  3. Go to that node (using the URL scheme we’ve been talking about.)
  4. Export that node (and its descendants) into another IThoughts mind map (which is a function built into iThoughts).

I think the above could all be done in one Keyboard Maestro macro. And I’m sure other automation tools could be made to make it work.

1 Like

I also realised CMD+Enter gets you into edit mode straight after using the URL. So one might be able to do more - automatically - than just open a mind map via a hook. One could do Cmd+C, fiddle with the text and Cmd+V.

(All of which takes us quite a way away from Hook, I admit/fear.)

I’m bumping this back up. iThoughts is listed as “linkable” with no specific caveats, as opposed to MindNode which specifically mentions ONLY high level linking.
iThoughts has the infrastructure to deep link (the copy link) function.
@LucB , sorry to mention-bomb you like this but I’d like to ask if there was a changed in iThoughts that make in non deep-linkable?

Thanks!

1 Like

If we’re reviving this thread (and why not?) :slight_smile: has anybody experimented with the automation ideas I suggested?

that’s the issue: i can’t get a deep link in ithoughts anymore, hence my question to luc.

On the basis of the Drafts automation, here is the script for iThoughtsX that will get a markdown link with the name of the node and the ithoughtsX:// url

set the clipboard to ""
delay 0.1
activate application "iThoughtsX"
tell application "System Events"
	tell process "iThoughtsX"
		#get url
		click menu item "Link" of menu 1 of menu item "Copy as" of menu 1 of menu bar item "Edit" of menu bar 1
		repeat 30 times
			try
				set myUrl to (the clipboard)
				if myUrl is not equal to "" then
					exit repeat
				end if
			end try
			delay 0.1
		end repeat
		#get title
		set the clipboard to ""
		delay 0.1
		click menu item "Copy" of menu 1 of menu bar item "Edit" of menu bar 1
		repeat 30 times
			try
				set myText to (the clipboard)
				if myText is not equal to "" then
					exit repeat
				end if
			end try
			delay 0.1
		end repeat
		set n to count of paragraphs of myText
		if n is equal to 0 then
			set firstLine to myUrl
		else
			set firstLine to item 1 of paragraphs of myText
			set len to the length of firstLine
			if (len > 256) then
				set firstLine to text 1 thru 255 of firstLine
			end if
		end if
		return "[" & firstLine & "](" & myUrl & ")"		
	end tell
end tell

The usual caveats of UI Scripting apply: it only works on the English version of the software, so long as the UI is not changed.

1 Like

You’ve got me wondering if it’s possible to script menu items by relative position in the tree. That might make it language neutral. (But still fragile.)

I’m pretty sure UI Browser would have let me specify something link item 3 of menu 1 of item 2 of … which would be less fragile, but still ugly and not really robust.

1 Like