Better Canvas Integration - Tagging files in group

Use case or problem

I find myself using Canvas a lot for organization. The standard methods of grouping in obsidian were originally:

method refine by flexibility
tag files sub-tags many to many
organize files into folders manually sub-folders one to many
create an indexing file that links to all files in the group creating new indices and copying over links (cumbersome) many to many

Tags are the clearly the best option IMO because they’re simple, flexible, and easy to use with DataView among other plugins. They make grouping easy, which improves searchability and discoverability. Links are good for containing information and tags are good for classifying it. Folders have their uses which aren’t important here.

We now have a new “standard,” which is grouping in Canvas.

Unfortunately, Canvas is not integrated with several obsidian features like searching, backlinks, graphs, etc. Canvases are more of a second-class citizen, whereas files/links/tags are first-class. If I create a canvas node that isn’t a file, search won’t index it, and I can’t even search the text locally within the canvas. If I create a group, that group only exists inside the canvas. If I link two nodes, that link doesn’t exist in the graph, backlinks, etc.

Many such issues are really unavoidable, or at the very least would probably be cumbersome or clumsy to integrate. e.g. How would backlinks work? The link gets dumped at the bottom of both files? Some are even desirable; would you want canvas (as a first-class citizen) shown in the graph view with all it’s many links? (in some cases maybe, but usually probably not). Most of the issues with Canvas being second-class are probably desirable, and I don’t think it should be first-class. However, there’s a lot of wasted organizational effort from the grouping.

Proposed solution

  1. Allow the user to right click a group, and assign a tag(s) to all of it’s notes.
    • I could see removing being useful as well
  2. Allow creating “linked groups.”
    • by using a tag as the group name, all files placed in the group automatically get the tag.
    • Removing files from the group – or deleting the group – removes the tag from those files (only the files in the group, not any file in the vault), assuming they aren’t part of the same group in another Canvas.
    • probably needs a better name

This allows organizational effort to be utilized across Obsidian and plugins.

6 Likes

GroupsForTaggins

I hacked together a proof of concept and have been using it to great reward.

This also illustrates the need for redirect nodes (like in Unreal Engine for example).
https://forum.obsidian.md/t/add-edge-reroute-nodes/55088

2 Likes

Hi @ggs ,

thank you for putting together a prototype for this. I’ve been having much of the same thoughts as what you describe in your post.

By any chance, do you have any code to share on this? I’m curious about what the best approach is to interact with canvas data programmatically.

Best,
Ben

1 Like

nice work @ggs, I’d also be very curious to hear about how you set that up as I’m really running into issues with this

It’s integrated into my personal utilities plugin, I don’t have the time to clean it up and it’s a rough implementation. Haven’t noticed any bugs with it, but here’s the relevant code if you’d like to use it: Very rough implementation of auto-group-tagging in Obsidian extracted from my personal utilities plugin · GitHub

1 Like