Allow to open local file

Just to inform everybody who want to link to and open local files on a Mac: I have successfully used the markdown link provided by Hook to link to local files and folders.
Best regards

New Obsidian user here. I decided to finally organise my notes and Obsidian seems ideal! I’d be happy to pay even for the personal version. Unfortunately, I cannot figure out how to make arbitrary files in the vault linkable from the md docs in the vault.
The whole vault will be synced using Unison or SyncThing to other machines, so I need a way to do relative paths, to make the links work on any machine irrespective of the location of the vault. The [link name](file:///…) approach works but works with absolute paths, so it is tied to a single machine, almost completely negating the advantage of Obsidian operating over a regular folder.
I registered a handler to open ad-hoc URLs of the form zk://relative/path/to/file on one of my machines as a temporary solution, but I don’t want to have to do this on every machine.
Obsidian vaults are likely to be synced to other machines, so in my opinion all links should be relative, not absolute.
If there is a better solution to this use case, I’d be grateful.
Other than that, fantastic work!

@pbazant you are replying to an archived thread, with a slightly related topic. You would be better to create a new feature request. That way, people can vote for it if they agree that they want this functionality.

2 Likes

While agreeing with @rigmarole, I’d also point you to Preferences → File → New Link Format, where you can tell Obsidian to use relative path to file instead of the shortest name possible.

I don’t quite follow your use case, but it sounds like that might help.

1 Like

@ryanjamurphy they are presumably talking about linking arbitrary files.

For example, linking to a zip file that is inside your vault. You cannot link to an attachment using the same format as images or markdown. You have to use file:///. But if using file:///, it requires a full absolute path, even if it is inside your vault.

(As far as I can test.)

So on different computers, that absolute path to the Obsidian vault may differ and the link would break.

3 Likes

My bad, I’ll create a new request! Thanks.

If the external-links has a whitespace (e.g. [link](file:///F:/Program Files) ), it also does not work.
Also, I used many #, [] for my external files link…Don’t know if the MarkDown could use external-links like this, I’m a noob.


I saw a changelog of Obsidian Release v0.8.6 (Insider build), hope it can fix the whitespace problem.

1 Like

You should use %20 instead of spaces.

4 Likes

It works, thank you.

2 Likes

For those of you on Windows that are using this functionality often, you might find Path Copy Copy a useful tool.

It allows you to add custom ways to copy paths in Explorer’s contextual (right-click) menu.

Under Settings > Options, I’ve enabled “Encode whitespace using percent-encoding (e.g., %20)” - which automatically replaces any spaces by “%20” and then enabled “Copy Internet Path” under Settings > Command so that it appears in the main contextual menu.

Now when you right-click any file in Explorer, you can simply click “Copy Internet Path” and it will add the file URL to your clipboard, prefixed by “file:///” as well as replacing any spaces.

Update: Pairing this with an espanso match, this can really speed up your workflow. The below example allows you grab the above link from your clipboard and properly format it as an actual link in Obsidian by simply typing “:file”.

  # File link for Obsidian

  - trigger: ":file"
    replace: "[File]({{clipboard}})"
    vars:
      - name: "clipboard"
        type: "clipboard"
8 Likes

For those of you trying to link to sources/documents in DEVONthink, there is a remarkably easy way to do it. In DT: index your vault, open the target note, then select the sources/docs you want to link to and Cmd-Alt-Drag & drop them into the note. Presto! the link(s) show up, properly formatted and named in Obsidian.

I’m on MAC and it does not seem to work for me neither. If I type for instance:

[link](file:///Users/username/Documents/foldername/filename)

I receive this message:

Any idea? Am I doing something wrong?

Any help is very much appreciated!

To help figure this out, could you try it out with a real test file and then paste here both the file’s path and the link you tried?

Hi,
thank you for this great an easy solution.
It seams works for local folder.
It´s great idea for linking to local folders
the syntax is:
[foldername](file:///local path)

1 Like

Be good for Local Links with Spaces to Work

Just a note no internal links with spaces are working. Would be a good feature to add.
Currently in Windows the working local links are:

  1. [Folder](file:///N:\..a)
  2. [Folder](file:///"N:\..a")
  3. [Image](file:///N:\..a\Figurative.png)
  4. [Image](file:///"N:\..a\Figurative.png")
  5. [File](file:///N:\..a\test.txt)
  6. [File](file:///"N:\..a\test.txt")

All links with spaces are currently not working: (see spolier below)

Personally having a local portable reference library, it would be useful to have spaces allowed. Though renaming is certainly a possibility.

I made a video just to show what was happening with various link syntax in windows.

Windows Video:

Click Here to see Links Tested

Local Links with no spaces Working
[Folder](file:///N:\..a)
[Folder](file:///"N:\..a")
[Image](file:///N:\..a\Figurative.png)
[Image](file:///"N:\..a\Figurative.png")
[File](file:///N:\..a\test.txt)
[File](file:///"N:\..a\test.txt")

Expected to Work:

[Folder](file:///N:\Documents\..Spiritual Library)
[Folder](file:///N:\..a)
[File](file:///N:\..a\test test.txt)
[Image](file:///N:\..a\Figurative.png)
[Image](file:///N:\..a\Figurative - 2.png)

None of the Local Links With Spaces Working
[Folder](file:///N:\Documents\..Spiritual Library)
[Folder]("file:///N:\Documents\..Spiritual Library")
[Folder](file:///"N:\Documents\..Spiritual Library")
[Folder](N:\Documents\..Spiritual Library)
[File]("file:///N:\..a\test test.txt")
[File](file:///N:\..a\test test.txt)
[File]("file:///N:\..a\test test.txt")
[File](file:///"N:\..a\test test.txt")
[File](N:\..a\test test.txt)
[File]("N:\..a\test test.txt")
[Image](file:///N:\..a\Figurative - 2.png)
[Image](file:///"N:\..a\Figurative - 2.png")
[Image]("file:///N:\..a\Figurative - 2.png")

Local Links with no spaces (mixture of trials)
[Folder](file:///N:\..a)
[Folder](file:///"N:\..a")
[Folder]("file:///N:\..a")
[File](N:\..a\test.txt)
[File]("N:\..a\test.txt")
[Image](file:///N:\..a\Figurative.png)
[Image]("file:///N:\..a\Figurative.png")
[y-Image](file:///"N:\..a\Figurative.png")
[Image](N:\..a\Figurative.png)
[Image]("N:\..a\Figurative.png")

1 Like

Links must be URL Encoded… change spaces to => %20

2 Likes

:slight_smile: so obvious, been over seven years since I have had to think about this stuff, thanks for the tip, will check it out. :seedling:

As one can shift right click and ‘copy as path’ in windows, I will leave it as a possible suggestion anyhow, that this native windows path would work with the file syntax in front.

Anyway the program is a very powerful tool, I am very appreciative to the developers and communtiy.

Thanks @luckman212 all working well.

For anyone who struggles with this code stuff; the resulting awnser:

“N:..a\important - note - 2021 - Jan12.docx”
becomes
[File](file:///"N:\..a\important%20-%20note%20-%202021%20-%20Jan12.docx")
or
[File](file:///N:\..a\important%20-%20note%20-%202021%20-%20Jan12.docx)

If not comfortable there is a converter here

Example of how to use here

2 Likes

Hi jwb,

Your suggestion looks great but I can’t seem to get it to work.
Do you mean holding Cmd-option-Drag & drop? There is no Alt on the Mac.
I tried that as well but all it does is coppy the image from devonthink into the obsidian vault and inserts a simple link in the document.
What i want to do is reference an image stored in devonthink without moving it over and also have it be displayed inline.

Thanks in advance for your help!

Odd. I got this to work earlier (dragging with cmd+opt held from DEVONthink into Obsidian to create a DEVONthink item link), but now I can’t make it happen again. (Note: the option key is the alt key; many Mac keyboards have alt printed on the key!)

It will always work from a DEVONthink window to a DEVONthink window, though. You may want to use the DEVONlink plugin to quickly open a note you’re working on in DEVONthink and then use this workflow.

This is not possible, however. If the file is stored in DEVONthink, you can’t embed/transclude it in Obsidian (using the DEVONthink link). Obsidian doesn’t have the capability of rendering a DEVONthink item link embed.