[BUG] The Bookmarks core plugin leaves invalid data behind in `bookmarks.json`

Steps to reproduce

  1. bookmark a md file that is stored in a specific nested folder path
  2. check: UI Bookmark pane, this item exists
  3. delete the specific nested folder
  4. check: UI Bookmark pane, this item no longer exists (expected, correct and elegant)
  5. check: bookmarks.json, this item STILL exists (not really correct and elegant)

Did you follow the troubleshooting guide? [Y/N]

Yes. I found this post, about the same issue: Please remove deleted bookmarks from bookmarks.json​

But hear me out:

Proposed solution

The problem: The current plugin logic will potentially leave a lot of “trash” invalid data in bookmarks.json for items that are really no longer valid, potentially indefinitely, if one never checks. Terrible system hygiene.

The original argument by @joethei is about the files existence discrepancies configured by sync across devices.

But a better way we can handle the “not-detected/deleted” bookmarked items is to always leave them on the Bookmark pane while indicating the exist/non-exist status via certain visual variables.

If we leave the “not-detected/deleted” bookmarked items on the Bookmark pane regardless if they exist on a particular local device, the user can judge then decide on behalf of Obsdiian, if they 1. still exist, just on a dif synced device 2. really don’t exist anymore

  • If the user thinks 1, they can keep it on the Bookmark pane — the other devices’ use are unaffected
  • If the user thinks 2, they can delete it manually from the Bookmark pane — bookmarks.json clean, and always will be — or at least always transparent to user, clean or not clean might be a personal thing

As to visual variables, the simplest I can think of is just to have the undetected ones grey-out a little bit. Perhaps some changes in the conditional logic, and some CSS mods, but overall might be simple.

1 Like