New Plugin: Note Link Graph UI

I would like to suggest an idea. The section of the stetting of the Notebooks names filter is mostly a list with a "," between names. I would like to suggest a modification. A few section text box that you can activate and deactivate.

The usecase is.
I have a few folder with journal notes. There, I make links with more thematic notes (for research mostly). It lets me remember me when I worked on what and when I was thinking about what. But, sometime, in the graph, I would like to see only the links between research notes. But, I would need to erease the names of all my journal likes note folders... and rewrite all their names if I want to reapply the filter.

A little checkbox before the textbox to active and deactivate the filter could make that (activate deactivate filter) far quicker and make my life easier.

Plus, making many such activate deactivate filter would hep if people would see some kind of link appear and not.

EDIT : I know that there are workaround, like putting most of the notebook in one that has a easy name to write and delete, but my suggestions is more "making things easier".

1 Like

@GabrielMPhi Next plugin version will include settings, which can be changed directly in the graph user interface. The first one will be a slider to set maximal note distance.

I guess we can later also do this for your mentioned notebook-filter. So you don't have to go in to settings menu and rather adjust directly on-the-fly in graph.

More on this shortly!

2 Likes

Changes v1.5.0

Graph interface has "Max. distance" inline setting:



Show Note tags when hovering over a node:



3 Likes

First of all: Thank you for a great plugin!

I have an issue that may or may not involve me being very new to Joplin:

TL;DR: When filtering for notebooks with include, and e.g. 'A, B', only the first one, A, shows. Switch them up to 'B,A', and only B shows.

Details:
My workaround for not having several profiles, e.g. personal/work, is to simply have several notebooks with sub-notebooks. This means that I want to only include some of them in the graph at a time with all their sub-notebooks, hence I have 'filter childs' ON. However, when I fill in the filter list with 'Research Main, Books' for the two respective notebooks, only the first one show in the graph. If I switch the order of them, the graph changes to still only show the first. The first seem to show properly with all its children though. Note: Research Main and Books have seperate trees, i.e. none is included in the other, both are at the top and there are no other notebooks with the same names.

I'm getting the same behaviour on two different systems both running Ubuntu 18.04 and Joplin 2.6.10

1 Like

@cirrusL Do you have Max. distance set with a value > 0?
If yes, there has been a bug, where excluded notebooks ("Notebook names to filter") in Graph UI setting are only considered, when all notes are shown (max. distance 0).
Fix is already on the way and currently needs to be reviewed by maintainer.

3 Likes

Thanks for the plugin, is there any way to change the default zoom level, it is a little big for me. (tried changing the setting for "Size of the node label font" but no effect)

image

I have the same issue when filtering using Exclude. Only the first notebook in the comma separated list is actually excluded.

Sounds like the bug I'm experiencing is the same as you are describing, except with max distance > 0, the excluded notebook list is considered, but the problem is only the first notebook in the list is excluded.

For those using this plugin, do you just slide the layout separator as necessary to enlarge or shrink the graph pane? Wondering what the best currently available way to view/hide the graph is.

if you want to change the layout of the window of this plugin, the best way I know is view -> modify layout.

and I close the window of this plugin, so the size do not influence my daily using joplin.

in my condition, I just set its window size occupy half of edit region. I ususally use joplin in only displaying markdown editor mode. so when click button of this plugin, it looks occupy half regiong of editor.

I have modified the layout to place the graph window to the right of the editor window, and I slide the border to enlarge/shrink that window as needed. But it sounds like you have a way to toggle the graph window on and off (hopefully some method more convenient than Tools > Options > Plugins and then enabling/disabling Link Graph UI)?

yes, the plugin add a button on toolbar of markdown editor. click it can switch displays / hide window.

Jb261 via Joplin Forum <notifications@cozic.discoursemail.com> 於 2023年11月3日 週五 00:55 寫道:

1 Like

oh, and there's a hotkey for it too! That's awesome, thanks!

1 Like

Hello, this Plugin is awesome but is this still active in development?

The last update was 2 years ago.

Hey @pbergaus , welcome. I'm not actively planning any new features if that's what you mean. Things have been more-or-less functioning fine with the plugin the last couple years (as far as I know).

That said I will definitely accept pull requests for fixes or features if others would like to contribute to the development.

If you are encountering a bug, check Github to see if someone else has already filed an issue and feel free to add a new issue if not!

4 Likes

Thanks to the developer. But unfortunately, this is a major drawback, and as successful as the plugin is, the lack of tag support makes it pointless to use.

hi @treymo

Thanks for your plugin. It is awesome. However, I think it is a bit annoying to have the physical simulation running and need to wait until it is stable to use. If I contribute a PR to add an option to stop this behavior to show the stable graph immediately, will you accept?

1 Like

I will definitely accept a PR for that, thanks!

2 Likes

Hiya, I really like the idea of this plugin but I think there's a few major ways it could be improved and was wondering if you'd be willing to accept PRs for any of the following:

Filtering Overhaul

Being able to filter by notebook name is definitely useful but I think it would be really beneficial to be able to filter by more things and have more flexibility:

  • Add filtering by tags (include or exclude)
  • Add filtering by notes (just exclude)
  • Add ability to filter by notebook name or by ID (useful for those of us who keep journals etc where repeat titles are common)
  • Add toggle for filtering during the graph building not just after it (would prevent lots of separate graphs forming when links go through notes that are excluded)

Preset Views

Somewhat building on the last idea but could be done separately, having the ability to define a view and load it would be very useful (here "view" meaning whatever settings are relevant like filters, selected note, etc), very useful if people have several knowledge management systems they want to run in parallel so you could keep your research notes, D&D notes, zettlekastan, journals, etc separate from each other but be able to jump between them easily.

Simulation Tweaks and Appearance Refresh

The simulation is nice but it feels like it takes forever to settle sometimes, I think making some tweaks to the amount of each force/distance/etc would really improve it's stability. Also from some reading it seems like d3 just randomly distributes the nodes across the area, choosing a better default would almost certainly improve stability and reduce the amount of links that go across the area unnecessarily (honestly just setting them all to have the same coords might work better...?)

Also the appearance feels a bit lacking in some ways, on the theme I use (darcula) most of the links are invisible and having white text on white circle is really hard to read. Exposing these to the user if they want to manually fiddle with them might be nice, such as how the note tabs plugin does.

Wondering if any/all of these would be interesting to you? Or if you have insight into any of them?

1 Like

Hey @Imperial_Squid , I like all these ideas and would definitely review those PRs! My only request is that you do a bit more digging into how changes the filtering system could impact users updating. Specifically: if you rework the filtering, are people going to lose their current filters when they hit Update?

Feel free to create the PRs on the repo, ideally in the smallest chunks that make sense so I can keep up with the reviews - thanks for looking to help!

2 Likes

Yeah so the idea would be that the user still uses the same string input but instead of the filter being <notebook name>,<notebook name>,<notebook name> you could mix and match so you could instead have <notebook name>,<notebook ID>,<notebook name>.

These would all be converted into IDs, if a filter item matches an ID of an existing notebook we stop there, if it doesn't we treat it like a name and include all notebook IDs with matching names (this preserves the existing behaviour). The same notebook ancestor matching behaviour would exist where you climb up the links until you hit a top level notebook.

Then when filtering notes we just test the note's notebook ID again the list as opposed to converting the notebook ID into a name and testing that.

With these specific proposed changes, the current filters would be entirely unchanged since the only change is how the data is processed, but that doesn't need to be stored or anything, plus the current behaviour should be entirely unchanged. (Afaict performance should be pretty much identical too, most people aren't going to have hundreds of notebooks with the same name)