Request: Specific Link-Based Breadcrumbs

I would like to make a suggestion for a new plugin since I’m not skilled enough to make one. The basic idea of it is link-based breadcrumbs . I find breadcrumbs to be very useful in providing context, but I want it to work with certain links only.

The idea is very much similar to breadcrumbs in software like VScode

However, instead of using folders/location of file, I would like to use specific links as a “pointer” to the upper hierarchy . This should all be customizable in the settings, for example:

I have two dataview fields that are used to link to files of the upper hierarchy

  • one is called parent , it links to a file of which this file is born out of (which is used to link task to project, project to goal, etc).
  • another one is called topics , it links to files which this file is a subtopic of

The index of my vault is called Index.md located at the root of the vault. I would enter these fields into the settings of the plugin:

path to index: Index.md

| field name | type (a selector based | is array    |
|            |  on supported types)   | (a checkbox |
|---------------------------------------------------|
| parent     | dataview inline field  | false       |
| topics     | dataview inline field  | true        |

In turn, at the top of my file editor and file preview, I would see the breadcrumbs from the current file to the the index. For example:
Index > All Goals > Dream House (Goal) > Design Computer Network (Project) > Figure Out Which Rooms Need Ethernet Ports (Task)

  • Each of the elements in the breadcrumb would be a link which could be left/right clicked as usual
  • If there are multiple paths to the index (due to topic field being an array), the shortest path is shown in the breadcrumb
  • if no path to index exists, show the longest simple path (no cycles)
  • a collapsible arrow on the right. clicking it would show all the paths “upwards” of the node (clicking again would revert back to showing the shortest path only)
  • when multiple paths are shown after clicking the collapsible arrow, the paths are shown via a git branch graph like this:
    • git branch graph
    • but instead of circular nodes, I think maybe retangular ones with rounded edges and internal links inside would work better.
    • or maybe circular nodes with links on top of the node
    • this “git graph” view should only take up to half of the file pane’s height, and have scroll bars to scroll down or right as needed
  • if a file has multiple of the specified fileds, all the link(s) in all of those fields would be used to build the graph
  • supported types could be added as needed for dataview inline field, Juggl’s link type, etc
  • if the breadcrumb gets too long such that file titles cannot be shown, they will be shortened and elipsis (…) are put behind. If they are too short, no names would be shown and we just show a git branch graph instead (with links popping out when hovered on).
  • unresolved link would be rendered as an unresolved link (so custom css for “is_unresolved” would be applied)

On top of that, it would be great to show within what headers the cursor is currently in, like in VSCode. Clicking on a header on top of the current one would bring the cursor to said header:


Similar to what the Zoom Plugin does, but without the zooming.

I hope someone would be interested in this as well.

7 Likes

@SkepticMystic have you seen this? Is this what your Breadcrumbs plugin does?

Haha indeed! Payload was the original inspiration for breadcrumbs :grinning_face_with_smiling_eyes: things have deviated with the suggestions of others, and some things I haven’t got to yet, but this is what got me started

1 Like

Just watched the community video on youtube; kooks like great work Ross :clap::clap::clap:

It looked like similar functionality to “The Brain” app which I used for a few years in the past. It was a good try for note organzation except that it relied too much on the hierarchy of parent/child/sibling notes (which is contrary to what we’re achieving with Obsidian)

Now it seems you’ve found a way to make use of the parent/child rel’ship with clever use of Yaml; elegant thinking👍

Can’t wait to try it out. Hopefully will do this weekend.

1 Like

Thank you for the feedback, yalcin :slight_smile:

Just saw The Brain now, it seems quite restricted in it’s structure. With Breadcrumbs you get the best of both, free-form linking from Obsidian, plus structured linking from the plugin.
Let me know what you think when you get a chance :grinning_face_with_smiling_eyes:

2 Likes

The current beta of TheBrain v12 allows wiki-style links in the bodies of notes on thoughts. The note interface also lists backlinks and unlinked mentions. So, notes in TheBrain have similar capabilities for forming networks outside the more explicit structure displayed in the mind-map-like plex as do notes in Obsidian.

In some ways, the everything-is-a-thought-or-a-link structure of TheBrain is actually more flexible than Obsidian:

  • The hierarchy formed by parent-child links allows for multiple parents.
  • Non-hierarchical jump links can connect thoughts.
  • Thoughts can have types that are themselves thoughts. (Types have a single-parent hierarchy.)
  • Links between thoughts can have link types, directions, notes, and attachments.
  • Tags themselves are thoughts. A tag can have multiple parents, and there are no restrictions on spaces in tag names.
  • There are more facilities for mass operations on the structure of thoughts in a brain than there are in Obsidian.

(Personally, I also find the graphical representation of a brain in TheBrain’s plex much more useful than that of the graph in Obsidian. But tastes will differ on this point.)

Now, there are many, many things that Obsidian does better than TheBrain. My experience with both, though, is that the structure of a brain in TheBrain can be much less rigid than that of a vault in Obsidian.

1 Like