BoostIO / BoostNote-Legacy

This repository is outdated and new Boost Note app is available! We've launched a new Boost Note app which supports real-time collaborative writing. https://github.com/BoostIO/BoostNote-App
Other
17.07k stars 1.47k forks source link

Bidirectional linking between notes #3536

Open athul7744 opened 4 years ago

athul7744 commented 4 years ago
Flexo013 commented 4 years ago

Interesting idea, this suggestion does pose a few questions:

athul7744 commented 4 years ago

How would you imagine this working in the UI?

  • In the UI, we can have a separate pane (placement is a problem though!), that shows all the notes in which the current note is mentioned. So we can easily navigate to those notes. So this creates a web of connectivity between all linked notes, and we can easily navigate through them.

How can we identify all linking notes without have to search all notes of the user (because searching a couple thousand notes for these links will be very slow)?

  • I think it's better to store the details of linked notes, rather than calculating them at runtime. For existing notes I think we have to construct the links data.

Why do you want this feature? If you want an easy way to go back to the previous note your were on, then would a back and forward button suffice (see #1431)?

  • It's not about going to the previous note alone, but seeing all related notes where this note has been mentioned. It makes it easier to see related content and creates this interlink between all notes, like a personalized web.
Flexo013 commented 4 years ago

All-in-all I would say this is a nice feature, all be it a bit convoluted to implement properly. Something to really keep an eye on is that this should not have any (major) impact on the performance of the app for users who don't use this feature. Potentially a button to explicitly calculate these mappings could be a solution.

If someone feels like implementing this feature, then feel free to start on it and submit a PR (even if it's still WIP).

athul7744 commented 4 years ago

I'd imagine we could add a collapsible/expandable list in the info section of a note. Right underneath the note link.

  • We could add a separate icon for linked notes next to the info icon. And we can directly navigate to linked notes from that dropdown. Coupled with #1431 it will be a seamless way to navigate. Calculating the data to store is still going to be rather expensive. Storing when the data was last updated and looking at when the file was last modified should allow for some optimization......
  • Yes, that can be done asynchronously in the background. We could maybe store the links as a graph, or store the ids of notes linked to a particular note for all notes and update it each time a new link is added. Initial buildup of this will take time though. Alright, then we can leave this as its own stand-alone feature request.
  • Awesome! :+1: