Home / GitHub Page

Internal URL/hyperlink

Hi there

First of all, thanks for an awesome programme. I’ve been looking for something like Joplin for ages and it’s perfect for my needs.

I note that it’s possible to create hyperlinks that can be used to link text in one document with another document. But it seems to require that I know the ID of the note I want to link to.

Would it be possible to implement a search feature within the “Insert hyperlink” dialogue box? For example, I want to link some text in the current note to another one called “Lecture 1”. Instead of pasting a URL into the dialogue, I start typing “Lecture”, which filters all local notes and displays those that have “Lecture” in the title. When I click one of the filtered results, it creates the internal link.

Thanks again,
Michael

Hello, and welcome to the forum!

Have you noticed the “Copy Markdown Link” option when you right-click a note?
Then just paste the link where you want it. No fiddling with IDs needed.

Thank you. I hadn’t seen that option. That’s very helpful.

And you can also link to a heading or an anchor to take you to a specific part of your “target” note.

This really needs to be enhanced from a UX perspective. There is a lot of potential here. The actual functionality is there, but the usability is not.

For example: rather than having to right click a note -> copy link -> go back to note being edited -> paste link, you should be able to (for instance) start typing [[ (two square brackets) and then start typing a note name. This brings up a dropdown auto-hint box with matching notes. You can use arrows to select one and then enter to insert the link. This is how many Wiki editing apps work. The double square notation is just the wiki style, but you could just keep it with markdown and open the dropdown when a single square bracket and a note name is typed.

Same thing for headers. If you start typing: [My Note#Hea the “#Hea” will trigger a search for headings with “My Note” and also give a dropdown to autocomplete.

Want to link to notes in another notebook? You would start typing: [OtherNoteBook/Note and an autocomplete box appears at the cursor with notes starting with “Note” inside of “OtherNoteBook”.

This is a great feature for a Google Summer of Code intern to be working on. It borrows intellisense / code-completion features from programming IDEs, and makes the whole linking between notes feature much more user friendly. It also means Joplin can be more easily used in a Wiki style which I know many people use it for (personal wikis etc.) I know I have tried to do that, but the linking functionality is just not quite there yet. This would make it perfect.

#GSoC #2020

This has been suggested before, and it would certainly be a great feature. Especially for referencing a section in a note.
The logic from Goto Anything might be used to get started.

@laurent can we add this to the GSOC ideas?

Yes it’s true it would be a useful feature and I think a good candidate for GSoC. If someone can create a pull request with a spec, we can merge.

I’ll try to find the other topics about this.

@jis2507 do you want to write a requirements document (specs) for this? I can proofread and then we can add it to GSoC.

Happy to write a spec for this, but not sure on the format / process for doing this? @tessus is there a standard Joplin way of doing this, or is there a particular format needed for GSoC? Also happy for somebody else to do it that knows the process better, and I can provide input with my own ideas.

I don’t think there’s a special format but it could simply be a Markdown file with these sections:

  • Abstract: in 2-3 lines, what the project is about, why it’s needed.

  • Specifications: as much details as possible about the feature. I think your post above is pretty much it.

  • External links: a link to the discussion here, or any other link you can find related to the feature. As I understand, they want to see that there’s interest around the feature and discussions happening so that would be the point of this section.

Perhaps @PackElend has additional suggestions about this.

I added the tags in the OP, this the very first topic in this regard.
It can be added to the projects list.

I still have to come up with a proper structure how such proposal shell look like.
How about

  1. Current functionality
  2. Futur functionality
  3. why it should be done
  4. how shall it be done (more technical than 2.)

Hmm, Laurent’s structure is better.

The abstract, which is at the beginning already explains why it is needed.
The specifications is basically the requirements document (as referred to in software engineering, but the term ‘specifications’ is mostly used these days).
And the external links section provides proof that other people would like to see this feature as well.

The current functionality is irrelevant and mostly will be one sentence: It does not exist.
Future functionality and how shall it be done are in the specifications and the why is in the abstract.

Sorry was too quick reading it, I’m in