-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FR] Backlinks inside canvas using edges #16
Comments
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. |
Again, I'm no expert, probably there is a better way to do this. With that said, here's how I'd do it.
|
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. Now my knowledge is connected across multiple canvases. |
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. |
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 |
for example, Groups G1, G2, G3, G11, G12, G13 are connected via Node N1 (G1, G2, G3 --> N1 --> G11, G12, G13) Similarly, Nodes N1, N2, N3, N11, N12, N13 are connected to Group G1 (N1, N2, N3 --> G1 --> N11, N12, N13) This distinctive nature of Nodes and Groups can enable very flexible framework accommodating tasks of any complexity. |
|
Right now, there are two ways to make a bi-directional link. Both of them have their issues B. Draw two Arrows. But if you want to delete the Arrow, you have to delete twice. 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. |
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.
|
I ran into Excalibrain, an interesting spin of graphview. |
minor FR : ability to disable backlink and use a plain old visual line - a small icon on the Edge/Line |
obsidian-semantic-canvas-plugin : "Set properties for all Markdown files included in your canvas based on their group membership, links to files, links to cards, and links to web embeds." since it can modify metadata based on Canvas properties such as links, etc. thought it might make a good platform to build on top of, rather than having to start from ground up doing all the heavy lifting. |
IMPORTANT many of the powerful feature set we'd discussed earlier can be found in semantic canvas plugin, such as the following
and i gotta appreciate the attention to detail of the author. such as
it definitely serves as a framework to create an MVP, with minor modifications. please do look into it. |
That's a cool demo. I was struggling to add the canvas to the graph view and adding frontmatter to it. But now, I better know what you requested. |
glad you found it useful. |
I didn't expect you'd get back so fast. |
No problem 👍🏻 |
Mike feel free to lift anything from my code base. I looked through yours to see how you were doing some stuff. Mine is amateurish by comparison, so I doubt it will be of much help. I would love to see what @Pixel3ro is looking for, too, but also very much recognize the amount of work it would take to handle all the interaction scenarios... let alone how to do it all within the Obsidian API. As we're all aware of, Obsidian themselves don't (currently) support backlinks or metadata in the canvas file itself... so anything @Developer-Mike or I would do would be some custom-built solution on top of things... e.g. extending the JSON Canvas to add metadata there, or introducing a new file that mirrors the canvas and serves as a proxy for backlinks... either way managing state & cache invalidation will be a bit nightmare-ish. I don't plan on trying to do this at any point in the near future, or maybe ever. It's a bit too heavy of a lift for my situation. |
@aarongilly I've already tried multiple versions on how to add backlinks to canvas (as you can see by the linked branches 😓):
It's indeed a very difficult task and I can't assure that it will get added to Advanced Canvas... |
sorry if my language wasnt clear similar to scrintal, i was imagining the use of YAML in .md files (not .canvas) to include the backlinking. @aarongilly has done something similar with his plugin, where arrows and metadata are connected. and i'm sorry i dont understand the need nor the complication around using the .canvas files |
also. i use "Obsidian canvases" as "boards in Scrintal" |
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!! :)
The text was updated successfully, but these errors were encountered: