Using Hookmark with Curio

Curio is a user-friendly note-taking, brainstorming and mind-mapping app for the Mac. It can help you think through cognitively demanding projects. It provides scaffolds for researching, creating, learning and problem-solving. Whether you’re writing a document, developing a video, or creating any other product, Curio can extend your brain.

For a showcase of Curio with examples of using it with Hookmark, see Curio a Cognitive Tool for Researchers and Creatives.

Default Integration

As of 2020-08-15 (version 128 of Hookmark’s integration scripts), by default when Hookmark’s Copy Link command is used in the context of a Curio document, instead of a curio:// URL being added to the clipboard, Hookmark will copy a link containing a hook://file/ URL for the document. That is to say that Hookmark interacts with Curio using its generic built-in scripts; this means that you will not see an entry for Curio in Hookmark’s Preferences > Scripts tab](/help/preferences/script-editor/).

How to make Copy Link return curio:// URLs instead of hook:// URLs

We believe that most Curio users are best served with Hookmark’s default integration scripts. However, if you would prefer, in the context of Curio, Hookmark’s Copy Link command to return curio:// links (rather than hook://file/ links), you perform the following steps to add a custom script for Curio:

  1. Select Hookmark’s Preferences > Scripts tab.
  2. Press the + button in that tab. This will cause a popup dialog box to appear.
  3. Copy the script below.

tell application "Curio"
markdown link to selected item of active document
end tell

  1. Select the Curio app from that dialog box.
  2. Paste the above script into the “Get Address” tab. You can leave the other Curio tabs blank.
  3. Click the save button (bottom right).

It is also possible to add a new template for Curio, and to configure the New Item script in that tab to use it. See this tip.

Tradeoffs for choosing which script to use

If you’re not sure whether you want to use Hookmark’s default way of integrating with Curio (where Copy Link returns hook://file/ URLs) or the alternative provided above (where Copy Link returns deep curio:// URLs), consider the following.

Using Hookmark’s Default Curio integration

With Hookmark’s default integration:

  1. In the current Curio document, Copy Link and Hook to Copied Link copy hook://file/ links to the URL (not curio:// URLs).
  2. When you copy any link (from anywhere) and then use the Hook to Copied Link command while in a Curio document, the copied link will be hooked to the entire file, not to whatever item you select (in the navigator or on an idea space).
  3. If a Curio document is renamed or moved, links to it (that you obtained via Copy Link) will continue to work (whether you used Hook to Copied Link or pasted them outside Hookmark).
  4. In Curio documents, the Hook to New menu item is enabled. It creates a new document which it ‘hooks’ (bidirectionally links) to the hook://file URL of the current Curio document.
  5. Hookmark’s Reveal File in Finder will work on any saved Curio document.

Using the alternative (deep link) integration

With the alternative integration:

  1. In a Curio document, Copy Link creates (i.e., copies) a deep curio:// URL that points to the selected item in the current Curio document. This is equivalent to using Curio’s Copy As Hyperlink command.
  2. When you copy any link (from anywhere) and then use Hookmark’s Hook to Copied Link command on the current Curio document, the copied link will be hooked to whatever Curio object is currently selected in that document (or to the entire document if there is no selection). The object could be an entire idea space (selected in the navigator), or an item in the current idea space. That means when you invoke Hookmark again in the Curio document you will only see the item hooked to the current selection, if any. If there’s no selection, then you will see everything hooked specifically to that document. Hookmark will be unable to recognize that other items in the document other than the one selected are hooked to this document.
  3. If you move or rename a Curio document to which items are hooked, and then invoke Hookmark again in the context of that document, you won’t see any of the hooks to this document. That is because Curio creates new URLs for documents that are renamed or moved. (When Hookmark is invoked on a document, it gets its URL and matches it against previous entries in its database. Since the moved document has a new URL, this lookup turns up blank.)
  4. Like hook://file URLs, links created via Hookmark’s Copy Link command, which in this case are curio:// links, will continue to work when you rename or move them. That is to say that Curio robustly serves curio:// URLs. However, the first time you click on a link to a document that has been moved or renamed, Curio might present a dialog box that requires you to open the target document.

Principles used by CogSci Apps to determine Hookmark’s Copy Link scheme for particular apps

If you’re curious as to how CogSci Apps decides on the scheme of URLs returned by Hookmark’s Copy Link and associated commands, please consult Principles That Determine the URL Scheme Returned by Copy Link for a Given App.

About Switching from curio:// hooked links to hook://file links

If you decide to switch from the alternative, i.e., curio:// URLs to Hookmark’s default integration (version 128 and following), rest assured that all your previously pasted links to Curio documents will remain valid. Curio will continue to handle them as well as before.

However, in that case your prior “hooked links”, the ones that show up in the context of a given Curio document when you invoke the Hookmark window, will no longer be visible. However, you can carry them over. Here’s how:

  1. Before switching to the hook://file/ URL, create one temporary proxy file per Curio document (i.e., any type of file).
  2. Use Copy All Links on each Curio document, applying the result to its proxy document.
  3. After you upgrade to the new format, you can Copy All Links to the original Curio document.
  4. Then you can delete the proxy files.

We discussed Hookmark’s integration with George Browning, Zengobi Inc., the developer of Curio, who agrees with Hookmark using hook://file/ URLs.

Avoiding verbose hyperlink names

@seishonagon on the Hookmark Forum reports:

Hooking Curio documents, whether using the built in linking or the deeplink script (see Using Hookmark with Curio) create a verbose header that starts everything with Curio project.

He notes:

@georgezengobi came through with some Curio advanced prefs that make the AppleScript nightmare go away. Existing prefs are […]
Replacing everything after -string makes it do what I want. I have set it up as: […]

Please see Formatting Curio link names for details.