Syntax to link notes

Curious what @laurent position is on this proposal

1 Like

Really in favor of this. I love Zettlr as a platform, but the lack of android app (and some other small things, like nextcloud support) makes it hard to use as a true Zettelkasten


Have been using Zettlr now for some time and can say, that I love it, too.

The difference between Joplin as a notebook or a CMS has been discussed here on the forum. Many things make Z. a much more fluent and distraction-free an app for actual writing, at the current stage of development. The basic NC-sync is enough for quickly collecting new zettels on Android to be imported to Zettlr on desktop. Joplin, on the other hand, acts better as a personal notebook for non-strictly-for-writing-projects-confined bits and pieces.

However, I would like to see backlinks featuring also in Joplin (reckon Zettlr is going to implement bidirectional links, soon). Discussed also in here very recently.

1 Like

I’m not really a techie (at all), so a lot of this dev talk here goes over my head. But I spent a lot of time searching for a solution that does just this.

I’ve been using Joplin as a Zettle, and the work of manually keeping every note in mind and syncing them together defeats the purpose. I wish this bi-directional linking like in Zettlr or Roam would work.

Just throwing another vote of support for this idea!


curious to see if I can lure @laurent and/or @tessus in the conversation?

1 Like

We had this discussion a few times before. It’s also on my wishlist, but there are so many other things to tackle first.

My solution would look like this: when you typed [[ a popup next to the cursor would appear and you could search for a note (similar to the goto anything element - or actually we could even use the same code). Then the [[ would be replaced by the proper link [note title](:/hash).


I think that sums it up, except that I think a cross-reference or reverse-link should be added to the note that is referenced. The cross-reference ( in the similar [note title](:/hash) format ) would become prepended to the existing body, allowing for intuitive navigation

1 Like

I am against changing a note’s body. Also a not could be referenced from many notes. An extreme example, but do you want 100 lines at the beginning of the note, if that note is referenced from 100 other notes?
However, should backlinks ever be considered, there are a few options where to show them:

  • notes properties
  • status line (which does not yet exist)

Btw, you can use the Back button to go back to the previous note. (This won’t work of course, if you go directly to the note that has one ore more backlinks.


Otherwise there could be a setting that would allow adding a backlink to the body. But I remember that Laurent is not too keen when it comes to adding settings.

1 Like

I suppose it can be done without touching a note body. Something like this:

  • add a table to store notes’ links much like there’s a table for note-resource links already
  • when rendering a note add a section (for example at the bottom) “Notes linking here” and put a list of notes from the database.

Not sure how this can work with WYSIWYG and it won’t work with an external editor for sure.

Can be at the end or maybe made collapsable. Or floating like someone here on the forum made a floating TOC.

1 Like

That’s an interesting thought…

Possible the navigation / tags bar could host a (autocomplete ) dropdown menu, that list notes linked to the current one


My solution would look like this: when you typed [[ a popup next to the cursor would appear and you could search for a note (similar to the goto anything element - or actually we could even use the same code). Then the [[ would be replaced by the proper link [note title](:/hash) .

So uh, I’ve actually been working on this because I hate having to use my mouse to link to other notes. Short video showing this off. AceEditor and TinyMCE both have built in auto-complete. I have something working with AceEditor but boy was it a headache to get working since the feature/extension isn’t documented at all with Ace. I haven’t started with TinyMCE yet.

Edit: Here is a gist with the code to make it happen. I could PR this but I had to make some changes and pull react-ace’s version up to a more recent one and drop brace and switch for ace-builds, due to some changes they made in the project. The app loads fine but I have no idea if jumping ahead like 2 major versions on react-ace has broken anything. I literally just got this auto-complete working today.


Very cool! This could maybe even hook into the new search system that is being developed.

While we’re talking about linking notes, I have another thought. Would it be possible to update the link text/alt text if the title of the linked note is modified? Obviously this only works if no custom name to the link is given.

For larger projects, I often use separate notes for different sections and an “overview” note. Having to update the links manually is kind of a pain.


This looks fantastic!

One thing though - isn’t AceEditor is going to be replaced with CodeMirror?

Thanks for looking into it but please keep in mind that we might drop Ace Editor in favour of Code Mirror at some point (maybe sooner than I thought), so it might be best and even easier to get it working on Code Mirror instead.

1 Like

Ah ok, I didn't know this. After the little work I did with Ace Editor and looking at the docs for Code Mirror, I can see why this might be happening. Is there a branch where Code Mirror is the default editor and can be worked on? It probably wouldn't be hard to add this autocomplete feature to it (they even have documentation! :slight_smile:) , but I would need to mess around to get it working.


The Code Mirror editor is already in the pre-release but you need to enable it in the Settings => Note => Enable Code Mirror

This is great. Before I read all the replies I wanted to say that upgrading Ace was on our list anyway.

But it seems that Laurent wants to get rid of it. I actually hoped that it would be here to stay, but if Code Mirror has the same functionality as Ace, I don’t care.

e.g. I really like the fact that I can move lines up and down with Opt+Up and Opt+Down.

However, I have the feeling that Code Mirror is more visual than text. And I really like just simple text in the editor. But I could be wrong.

It is just a simple text editor. But it has proper Unicode support, support for variable line heights, and is more extensible. Personally I would like to make the editor more visual, but obviously not everyone would want that. The current hearing changes can be disabled using the userchrome.css but ideally we’ll also have a toggle in the settings for users like you that just want an editor.

P.s. I’ll look into the line switching thing, should be easy to add


wow, this looks amazing! Maybe we can open a draft PR to add this feature based on Code Mirror together!


This Would Be great and the zettelkasten editor called obsidian .md was mad e by two people and wouldn’t be dfficult to implement so plwase do it