Towards SilverBullet 1.0

Right. There’s two scenarios here:

  1. This space script (collection) is getting popular and it’s annoying that people have to copy & paste
  2. This space script (collection) is getting unwieldy and complicated, we need to apply some serious software engineering here

In scenario 1, I think the answer can be to distribute space scripts as Libraries There’s some infrastructure for this now, and I think it may actually be nice to take the linked advanced tasks scripts and move it into a Library/Tasks or similar library so that people can just pull that in.

In scenario 2, indeed the space script can be rewritten as a plug. This is doable today. Potentially we can offer some ways to make this easier, for instance by supporting the space script APIs in a plug environment, so you could basically just copy & paste your space script into a plug (or export it as one), and iterate from there. Not sure if that would work, but it’s something worth exploring.

1 Like

Here’s a few things I would love to have in v1

  1. have a way to hide/collapse the Frontmatter
  2. soft delete
  3. a dedicated menu to browse recent opened pages similar to what intellij offers. This would replace the need for tabs.
  4. a feature to “rename” a path and apply it to all the notes in it.

Example for suggestion 4:
Imagine I have the following notes:

job/organization/org1/meetings
job/organization/org1/notes

I want to be able to easily move everything to
organization/ instead of job/organization

1 Like

have a way to hide/collapse the Frontmatter

Yes please! Another vote for this

1 Like

Is Page: Batch Rename Prefix what you’re looking for?

That’s exactly it! thanks!

  1. Other thing I miss from jetbrains world is CamelHump search:
CamelHumps is a feature that identifies parts of compound names composed according to CamelCase, where each part starts with a capital letter, or when parts of a compound name are separated by underscores. You can type only initial letters of these parts, and JetBrains Rider will find items with matching names automatically.
  1. Also, every time I have to create a new note it takes longer than I would like because I have to type the full note path/name. Maybe we could have a 2 step process where 1st we would decide the path, here we can have autocomplete tools, and then we type the note name.

Anyway, SB is already a great tool, thank you maintainers for all the work!

My wish would be a better search where the search results not only show the page name but snippets from the page (like Google and other search engines). Most note-taking apps are lacking in this regard, see also Customize search results

1 Like

I think that being able to search and find notes is something important that makes our notes more valuable when we can find them to consult them.

Being able to search: word + word + not word and case insensitive and sort result by date or another criteria would be very useful.

In addition to being able to customize the search template:

Here’s some more features I remembered:

  1. Soft delete notes
  2. Keep undo after opening a new note note

I’m getting the ideas while using SB. Do you prefer me to create new replies every time I get an idea or edit the old ones?

1 Like

I think now is a good moment to think about these snippets, since Transclusions just got added, which allow doing basically what you need. Just aren’t integrated with search (yet?)

1 Like

Not sure it’s a “1.0” item, but I think having a plugin manager would make things a lot easier for people who don’t have a ton of experience with managing their tools. Something to search for plugins, maybe show the most popular ones? Could also do something similar with libraries.

It would take some backend to manage it, though.

I would love folders and/or note management. I really like the Obsidian approach, where I can easily visualize where my notes actually are.

Note that we do have this: Plugs/TreeView

Ah, I had no idea :sweat_smile:. Thanks!

Currently on my list of things remaining that I would like to get done before a 1.0:

  • Schema support: I didn’t intend to do this originally, but because internally configuration is now validated using JSON schema, I may as well take this one level farther and expose this validation behavior to users. I’m thinking about two areas:
    • space-config: by supporting additional configuration options, and checking their values for the proper types (and potentially use this for completion later at some point)
    • frontmatter: that is, add schemas for tags. This would allow you to e.g. say "every #person tagged page should have a firstName attribute of type string and show validation errors when you’re doing it wrong.
  • Rework of Plugs/Share
  • Move PLUGS into space config
  • A code cleanup and performance improvement pass. I’ve done some of this for 0.9.0, but I bet there’s a lot potential here left. Part of this would also to leverage JSR more heavily for dependencies and perhaps pushing SilverBullet itself (or at least it’s plug APIs) there as a package.
  • Another iteration of the manual and website content
6 Likes