Developer-Mike / obsidian-advanced-canvas

⚡ Supercharge your Obsidian.md canvas experience! Create presentations, flowcharts and more!
GNU General Public License v3.0
185 stars 7 forks source link

[FR] Backlinks inside canvas using edges #16

Open Pixel3ro opened 4 months ago

Pixel3ro commented 4 months ago

Scrintal , another Canvas based PKM tool uses Visual-Thinking ability of the Canvas to let their users form multiple-complex connections intuitively. In the background these connections are automatically translated as Backlinks between notes, allowing it to be reused in other places. It's effortless, and a pure bliss to use compared to Obsidian.

In contrast, an Obsidian user has to type in the double bracket to toggle backlinking, type in the search bar, skim through a long list of search results to find the one they are looking for. For making multiple links they repeat the process all over again. Extremely taxing effort and time. Backlinking and GraphView is what made Obsidian gain popularity and find it's userbase since they were the first to implement this feature, and they even inspired many other PKM tools to add GraphView. And yet, another Core feature like Canvas is not integrated with them which is very annoying. Right now the only way to utilize both is by manually adding backlinks to recreate the Canvas Connections. I cannot emphasize the world of difference it makes between Scrintal and Obsidian in this regard. Obsidian NEEDS the backlinking feature of Scrintal's Canvas. Once it's in place it will be even more powerful than Scrintal, since these visual-connections are now accessible globally since translated-backlinks are now accessible by Graph-View and many existing plugins like Canvas-Link-Exploder would unlock many powerful workflows in Obsidian.

This is one of the main selling-point of Scrintal as their users love the intuitive visual thinking and ease-of-use making relevant links. Easier ways to form connections is a long awaited feature request in the Obsidian forum(Scrintal, AI-Based linking similar to Napkin) I cannot emphasize enough how useful this feature would be. So I implore you to add this feature to your plugin. I have been on the hunt for this feature for a while now, I scoured google to no avail. I even thought about making it myself even though I'm no coder and I don't even know where to begin. That's how bad I want this feature. I can tell from your plugin, you are a very capable developer. So I kindly request you to make this. PLEASE!! :)

Pixel3ro commented 4 months ago

If you happen to look into making this feature, here are a few things you might wanna keep in consideration

Also the plugin won't be performance hungry, since it won't have to keep track of the backlinks and their corresponding Canvas in an attempt to function appropriately in the various scenarios mentioned above.

Pixel3ro commented 4 months ago
  1. Obsidian-Canvas-Links lists all the files in the canvas, including images, audio, video, etc. In the spirit of linking the Notes in the Canvas in the earlier request, I'm suggesting linking the files too, automatically, which can be accessed in GraphView would make this feature set complete. This can be done by borrowing core features from "Canvas-Links" plugin and make it accessible from a GraphView query.

Again, I'm no expert, probably there is a better way to do this. With that said, here's how I'd do it. I'm not sure if Native Canvas file format is capable of holding the links to these files. I'm assuming it's not made for that, and you'd have to find a workaround.

Pixel3ro commented 4 months ago
  1. I love your plugin's Portal feature, and the fact that it supports Edges to the embedded canvas is just impressive. Allowing the backlinking feature between Notes which we discussed earlier work on Portals too. It'd be a killer feature.

It's a crucial feature too, since you can now link between Canvas, the circle becomes complete without leaving any gaps unbridged.

I would like to mention an UseCase of this feature. I import my Hypothes.is Highlights to my Vault. I like to view them in a Canvas as it presents a Bigger-Picture (compared to opening them as individual files) which makes it easier to form connections in my newly acquired knowledge. Feature #16 is very important in this case since my connections not just visual anymore, now they are a used to enhance my knowledgebase with backlinks. After organizing them, I Embed-Canvas it into other relevant Canvases. Here I use Portal feature and make Arrows once again, forming connection between newly acquired content and existing knowledge. Hence it's crucial that Portals are integrated with this backlinking feature.

Now my knowledge is connected across multiple canvases.

Pixel3ro commented 4 months ago
  1. Since Nodes are a part of Obsidian Canvas, they should be recognized too by your plugin. Otherwise the connections made to a Node will go unprocessed, losing valuable information/connections.

I have an interesting idea to use the Node. What if the nodes were designed to forward the links it's receiving, like a relay.

A similar behavior is observed when (Note_A, B, C --> node_1 --> Note_X) resulting in 3 backlinks.

In case of (Note_A, B, C --> node_1 --> Note_X, Y, Z), the plugin would make a total of 9 backlinks, the permutation-combination of bypassing the links. So in this case 3+3=6 arrows make 3x3=9 backlinks. In a bigger use case with 10+5=15 arrows would make 10*5=50 links. Which is a difference of 50-15=35 links.

This would allow the user make many connections at once. I can see myself using this feature to bulk-organize my Readwise imports, etc.

Pixel3ro commented 4 months ago
  1. In a similar fashion to the forementioned feature of Nodes, Links between Groups should behave the same way.

Since a Group of notes are connected to another Group, they can also be expected to form backlinks in a similar fashion to Nodes.

Using Groups to organize my Readwise imports is much easier than linking via nodes, since I can just click-and-drag or hold-shift to multi-select-Notes -> Group them together -> draw a single Arrow and my backlinking file-organisation is ready.

This way I don't have to click and drag 100 different arrows for every note one-by-one as it'd be the case with using a Node-bypass

Pixel3ro commented 4 months ago
  1. feature 4(node-bypass) and 5(group-linking) should work with each-other.

for example, Groups G1, G2, G3, G11, G12, G13 are connected via Node N1 (G1, G2, G3 --> N1 --> G11, G12, G13) N1 should bypass the connections in permutation-combination fashion as it did earlier with notes in feature-4, but with the Groups in this case.

Similarly, Nodes N1, N2, N3, N11, N12, N13 are connected to Group G1 (N1, N2, N3 --> G1 --> N11, N12, N13) in this case all the Notes connected to N1, N2, N3 will be linked with the Notes within G1. And, all the Notes in G1 will be connected to the notes in N11, N12, N13. Notice how N1, N2, N3 do not get linked directly with N11, N12, N13 in this case, where as in the example above, connections are direct

This distinctive nature of Nodes and Groups can enable very flexible framework accommodating tasks of any complexity.

Pixel3ro commented 4 months ago
  1. Toggle Features (Node & Arrow)
Pixel3ro commented 4 months ago
  1. Bi-Directional Linking - backlinks should recognize and support bi-directional linking in the backlinks they create.

Right now, there are two ways to make a bi-directional link. Both of them have their issues A. Click-Arrow -> Click-Line-Direction -> Select-Bidirectional (3 clicks) i. I'd prefer a popup as soon as I make the connection, allowing me to choose Bi-Directional in a single click ii. Click-Arrow -> Click-Line-Direction -> Select-Bidirectional (2 clicks) since Bi-Directional linking is a frequently used option, it should be placed in the front, making it easier to access by saving an extra click.

B. Draw two Arrows. But if you want to delete the Arrow, you have to delete twice. i. If two arrows are drawn in opposite directions, combine them both into one.

similar to request 7, it is crucial to have a vanilla Arrow/Edge since they have their utility, and they should have minimal design change without climbing up the visual-hierarchy to look distinct.

Pixel3ro commented 4 months ago
  • I have mentioned Canvas-Link-Exploder creates a Canvas with all the incoming and outgoing links. That's one way to look at a Note and the network around it.

This plugin is almost the opposite of Link-Exploder. This Plugin creates Arrows/Edges from existing links. It's a great way to pull in all your search results into your canvas and watch it make connections by itself. Kind of like an readable version of GraphView.

Since you would've made connections of the same Notes in different Context(aka Canvas) and this plugin will bring them all those connections together in one place, allowing you explore connections you didn't know existed. To make this happen, the notes should reorganize themselves just like GraphView does, forming clusters by putting the highly linked Notes in the center, etc. It would make its a bliss to skim through search results. Speaking of search results, Importing your search results into a canvas should be streamlined in one-click. This could crash your computer if the vault is too big. it should be taken into consideration.

Pixel3ro commented 2 months ago

I ran into Excalibrain, an interesting spin of graphview. with the aforementioned FR in place it'd be onsteroid. Thought I'd drop it here

Pixel3ro commented 1 month ago

minor FR : ability to disable backlink and use a plain old visual line - a small icon on the Edge/Line