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
    • a collapsible arrow on the right. clicking it would show the top 3 shortest paths to the index (clicking again would revert back to showing the shortest path only)
  • if no path to index exists, show the longest simple path (no cycles)
    • a collapsible arrow on the right. clicking it would show the top 3 longest simple paths (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
  • 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.

6 Likes