I love this idea! I think it would work great with my workflow. Being a student curious in the land of computer science, why lua? It seems to me like it has simple syntax and is easy to integrate, but is there another reason? From what I can tell from the syntax, it’s mostly a ‘user does the programming’ kind of language. Best!
Are all your Lua updates also being added to the Edge build? Or is it necessary to swapt to v2 to get these? (I’d prefer to stay on Edge a little longer to keep my space scripts alive until converted.)
thanks
I am a big fan of silverbullet I have really enjoyed tinkering with it. My notes are not critical enough and I can always migrate them. I would only have one strong request: just nuke space-script and plugs and let there be one way to extend the system. I previously learned typescript to make some extensions but it was a bit concurrent with space lua and confusing what I should be using.
Same here. Nothing I have created that could not be migrated.
My gut feeling is that you would lose more by trying to cater the (anticipated rather than proven) needs of two different user groups than by taking an opinionated and clearly outlined path into the future.
You may be interested in detailed discussion on the first Lua thread, also proposing some alternative approaches. In my few days of usage, some of the promised advantages already seem to be there.
I’ll also throw in my support for making a FOSS project fun for the developer himself.
When a user starts using this free application, there is risk of support running out, and development going in a different way than preferred. Both of those are you can fix with forking and doing the work yourself. Might be harsh, but I was taught:
Don’t look a gifted horse in the mouth
Thanks for the app as is, good luck onwards!
Nuking plugs doesn‘t really make sense. A lot of (core) stuff is implemented in plugs in silverbullet. Examples would be indexing, markdown preview, most editor commands, etc. And implementing these in lua isn‘t really feasible a lot of times as you need js/ts libraries.
I just did some backporting of syscalls I had originally deleted and got all plugs that I’m aware of back to work on the v2 branch. Just had to issue one (backwards compatible) PR to treeView, but has since already been merged.
Plugs will stick around, but I do think the go-to solution for most people will become to implement stuff in Lua, most of the time. It’s a lower barrier to entry. But indeed, less scalable (and less performant).
That is completely fair. I was just lost (from looking at the docs some time ago) if I am supposed to be writing lua code, or ts code and import as a plug. It would be great to make a distinction and recommendations for either
I guess that a lot of this depends on your use case and how badly one truly needs a particular feature. I’ve been using Silverbullet stable for a while now. When I first came over from Logseq, I had a mindset that insisted on certain features which would have required that I fork Silverbullet. Given my current knowledge level, that would be a long project which I did not want to engage in at the time.
So, I decided to be a bit more open minded and see what I could accomplish with Silverbullet as it is. No plugins except for what comes with the package. No Lua, No forks. No space scripts. I started to use it as is. I’ve found ways to accomplish what was needed in order to make Silverbullet work for my use case.
My Father grew up during the Depression when money and resources were tight. He use to say and demonstrate that the key to making due with what you have is to be able to
improvise. I too have found that improvisation and being open minded have been the key to achieving the results I was looking for. It has certainly been true so far as I’ve been using Silverbullet.
I think currently, one of the biggest missing features of SB is a way to easily share your space with others.
In v1, my setup for doing this:
- Run a “read-write” SB instance
- Use the Git plug to push to a repo
- Run a “read-only” SB instance on a server
- Run a cron job to:
- use git to pull from the repo
- use find and sed to delete pages with
private: true
- restart the docker container
Not an ideal setup, with many fragile moving parts.
In v2, the same works but worse because of online mode being removed. It takes ~30s for it to load, and on slower or limited cell data it’s an even bigger problem. A terrible user experience. I doubt anyone just passing by would even look at if it takes that long to load.
While SB is being reworked, I think this is a good time to fix this problem.