Keepnote has the feature of note-to-note and note-to-web links. Though these can be a bit clumsy to set up
I find them tremendously useful for cross-referencing other sources.
Keepnote also supports attaching files to notes but I don't find these so useful as you don't even know
the attachments are there unless you go digging for them or embed instructions in the parent note.
Although it is not documented, links can be used to reference files in the local filesystem.
In this case the URL is simply the full pathname of a file (it does not need the file:// prefix).
When the link is clicked the URL is passed to the browser which opens the file
with its configured action or application for that file type.
This is a somewhat convoluted process which slows down the file opening, particularly if the browser is not
already running. Also with my browser (Firefox 38) each time it opens a file a new blank tab is opened
in the browser as well, so eventually I end up needing to clean up a browserful of blank tabs.
This problem can be fixed with a small tweak to the Keepnote code. In keepnote/__init__.py, replace line 1112 which is:
self.run_external_app("web_browser", url)
with
if os.path.exists(url):
self.run_external_app("file_launcher", url)
else:
self.run_external_app("web_browser", url)
With this change Keepnote first checks if the URL is a valid filename. If it is, it opens it
directly with the configured file launcher (xdg-open for Linux). If its not a filename it passes the
URL to the browser as before. Now note-to-file links open instantaneously without invoking the browser.
To create a note-to-file link, first enter a friendly name for the file in plain text in the note.
Then select this name and press Ctrl-L. This converts the name to a link and opens the link editor window
where the full pathname of the file should be entered.