silverbulletmd / silverbullet

The knowledge tinkerer's notebook
https://silverbullet.md
MIT License
2.54k stars 185 forks source link

Implement a link graph view #18

Open zefhemel opened 2 years ago

zefhemel commented 2 years ago

For many this is the "killer feature" of a that allows bi-directional linking: the ability to show all your pages and their links in a graph. See Obsidian for examples of this.

I'm sure there are off-the-shelf JS libraries that make this fairly straight forward.

zefhemel commented 2 years ago

Work in progress by @bbroeksema: https://github.com/bbroeksema/silverbullet-graphview

yorrd commented 1 year ago

sneak preview. For me I'll do the 3D version. What would you guys rather like in the public plug? 2D or 3D? It's a matter of CPU load...

Currently I'm trying to work on making it easier to navigate. Showing all labels is stupid, then you won't see the structure anymore. I think I'll go with some kind of smart search where you can anchor some of the nodes and those and their neighbors will get highlighted. Then you can interpret the relationship between those.

At the moment

Opening the graph view takes roughly 3-4 seconds at the moment because I'm completely rebuilding the graph view (and reading all files from disk because of that). @zefhemel is there a good way to get a connected graph data structure from the existing indexer? I feel like we're duplicating code here.

Also, being able to slide the side panels open and close would be cool, it's feeling stiff atm. Maybe take inspiration from Obsidian? Even though I don't agree on all design choices, the new 1.0 UI with sliding panes and its layouting options is quite cool.

image

chaosharmonic commented 11 months ago

Has anyone else not been able to get the silverbulletmd/silverbullet-graphview plug working? I'm seeing a "show graph view" option but anytime I try to use it I get the following error in the console:

Unregistered syscall store.get
    at graphview.plug.js:1:1620
    at graphview.plug.js:1:1668

On further inspection, it's also throwing a different error at me on page load:

Unregistered syscall index.queryPrefix
    at graphview.plug.js:1:1620
    at graphview.plug.js:1:1668
chaosharmonic commented 10 months ago

^ confirming that this is still happening after updating to the latest version (cc @zefhemel)

zefhemel commented 10 months ago

Yeah it's been broken and unmaintained. Somebody needs to fork and fix it.

simone-viozzi commented 8 months ago

There is any currently supported / working plug for this functionality?

zefhemel commented 8 months ago

Nope