I like the idea, but in my case it would be more relevant to be able to automatically create a canvas based on specific properties (not only tags) (+ links between all files that fall under the specified properties, with the ability to specify depth, as in the case of local graph.) rather than vaults and folders.
Among the features I would like to have:
- Ability to choose how elements will be arranged on the canvas - vertically, horizontally, or otherwise
- Ability to customize the size of nodes, including whether they will be scaled to fit their contents (double-click on the bottom border of the node), or not.
- Ability to customize the distance between nodes, both vertically and horizontally.
- Ability to select the type of nodes - “card” with links to the notes themselves or “note from vault”
- Ability to select a color for nodes with notes with specific properties
- Ability to select the color of arrows for links in certain properties and for links in the notes themselves
- Which files will be ignored when creating this canvas (specific files and files with specific properties)
- Whether it is necessary to attach media to this canvas or not. (if attached, then in the form of regular links (
[[ ]]
) or preview links (![[ ]]
) (it would also be useful to enable/disable the display of all attachments on the canvas, perhaps it would help to get rid of unnecessary lags, as well as increase the readability of the content by focusing on the text content, without images in the field of view when they are not needed, but this is also a separate feature request). - A small dynamic preview of what the created canvas will look like with the given settings, so that you don’t have to create several thousand nodes again if you are not satisfied with, for example, the horizontal distance between the nodes.
- Whether properties will be represented as individual groups or not.
- The ability to specify a hierarchy of groups based on properties - to be able to put some groups (properties) into other groups, rather than just creating separate groups based on each property.
For example, if I have properties “file type” and “tags”, I need to specify that “file type” is primary, and that all other groups created based on other properties should be placed in it as a group. “tags” is secondary, and is placed in “file type”. And not each of the properties is presented as a separate isolated group without nesting one into the other.
Like this:
… not like this:
- In this case, if any of the properties has 2 values at once, it is necessary to give the possibility to choose how to proceed in this case: to create a separate group for “property-00 + property-02”, or just put simultaneously in the groups “property-00” and “property-02”, and link them with an arrow to each other. In the second case, it is also necessary to choose the color of the arrow for such links.
And for me it’s more important to be able to create a canvas based on these properties (folders/vaults) rather than just a canvas view, because then I will probably need to interact with them in some way, not just view them.
On the other hand, a canvas view, unlike a regular canvas, is automatically updated, which is also quite useful. But I still have doubts about the readability of such a “view” (see paragraph below). Perhaps an implementation of this feature request might be needed as well: Canvas: Visually isolating hovered card and its connected cards with other cards
On the other hand, this disadvantage can be remedied by:
- Ability to add to the canvas content that matches the specified criteria (properties), but is not present on the canvas. That is, if I create a canvas based on a particular property today, and during the week the number of notes from that property grows, I need to be able to add those new notes to the canvas, without completely generating it from scratch. This is also necessary because it seems to me that “polishing” the way the canvas looks is going to happen anyway, and instead of generating the entire canvas from scratch and “polishing” all of its content, I only need to add new content, and “polish” only that new content.
And in terms of just viewing them, I don’t think it will be very usable, because it will look like a lot of unreadable visual chaos, especially if there are a lot of nodes, I wrote about this problem in this feature request: Canvas elements respect other elements in their arrangement / Alternative logic for arranging elements on the canvas, - also need to improve how the elements that are placed on the canvas automatically - mainly arrows - are placed on it.
However, this would also require optimizing the canvas itself, because right now it lags pretty badly even on manually created canvases, where there are usually not that many nodes compared to what can be created automatically.
Canvas optimization is needed anyway, and outside the context of this feature request, but this is, again, a another feature request.
https://www.reddit.com/r/ObsidianMD/comments/zsjl4m/obsidian_canvas_zoom_and_panning_responsiveness/
If you consider how many things you need to implement and take into account to make this function really usable, then the hope for its implementation somehow immediately disappears… =) =(
This plugin idea looks a bit related: Create Canvas containing Search Results