Commit Graph
48 Commits
Author SHA1 Message Date
Zef Hemel c04d7c332f First pass at "Remote API" (see docs)
Note: this is highly experimental and will likely change in the future.
2026-03-17 09:57:08 +01:00
Matouš Jan FialkaandGitHub a01b91b707 Resove merge conflict (#1884)
Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>
2026-03-13 16:30:17 +01:00
Zef Hemel 2dd2c9b929 Fix "No such header #boot" errors in PWA mode 2026-03-12 15:08:38 +01:00
Zef HemelandGitHub 3df11ccf3d Implements custom markdown syntax extensions (EXPERIMENTAL) (#1881)
Alternative implemention of #1727
2026-03-12 13:40:20 +01:00
Zef Hemel a080ee3b15 Optimize bundle size + chunked builds + JIT loading
* Replaced AJV with other JSON schema library
* Turndown and Vim mode (very large) now only loaded when used
* Chunked builds with ESBuild
2026-03-11 10:04:13 +01:00
Zef Hemel ec40aa0838 Add action buttons to flashNotification
Used by upgrade notification
2026-03-10 16:07:25 +01:00
Zef Hemel fd1a81b8d8 Client refactor: move UI related APIs to editor_ui.ts 2026-03-10 12:42:26 +01:00
Zef Hemel 6d33d3d8ac Refactor: extract page/document manager into separate class 2026-03-10 12:33:34 +01:00
Zef Hemel cb9f954bc7 Refactor: extract widget cache from Client class 2026-03-10 12:17:02 +01:00
Zef Hemel 822997fd5e Client available upgrade notification
If the server is updated, but the client doesn't match the server
version, a notification will appear instructing the user to reload.
2026-03-10 12:05:33 +01:00
Zef Hemel 799e27a9b4 Enable biome based formatter and reformat 2026-03-10 09:38:59 +01:00
Zef Hemel cce5b669f6 Merge branch 'main' into to-node 2026-03-10 08:57:58 +01:00
Zef Hemel a5c9227499 deno fmt 2026-03-08 16:11:29 +01:00
Zef Hemel 0452910b0b Fixes #1777 2026-03-08 16:00:18 +01:00
Zef Hemel bbcd9ac6aa Introduce new noFloatingPromises lint rule and fix violiations 2026-03-08 15:49:45 +01:00
Zef Hemel 947edf52c8 Remove redundant type argument 2026-03-06 13:59:37 +01:00
Zef Hemel dbf275d75b Introduce biome as linter with lint fixes 2026-03-06 08:05:13 +01:00
Zef Hemel 99bbb37ff0 Fix make check 2026-02-15 08:35:06 +01:00
rktjmpandGitHub 8754b685ba Ensure command keybindings work reliably in any vim-mode (#1821)
When the vim extension is enabled and in "normal" mode, some default
bindings collide with Silverbullets commands (eg: `ctrl-p` - Share,
`ctrl-o` - Open Document, `ctrl-e` - Export, `ctrl-g h` - Home). These
vim bindings are not always functional (they may appear to do nothing
depending on vims state). This gives the impression that Silverbullet is
bugged and wont trigger commands. In "insert" mode, most bindings are
passed through correctly with some exceptions (eg: `ctrl-o`).

By splitting the command keybindings into their own keymap extension and
loading it before the vim extension, we can ensure Silverbullet commands
always trigger.

This does mean some vim bindings are overshadowed, but if a binding
triggers a Silverbullet command, its generally obvious that *something*
happened and the user should be able to recognise why the vim binding
failed and then rebind the command or vim mapping.
2026-02-06 16:12:02 +01:00
Zef Hemel 502b636aef Fixes #1815: Changes how index status is tracked
- New check for full indexing completion
- Renamed `hasInitialIndexCompleted` to `hasFullIndexCompleted` for clarity.
- Removed file:initial event (no longer required and not documented for public consumption)

Hopefully doesn't introduce new regressions. Needs testing time "in the field".
2026-02-05 11:20:11 +01:00
Zef Hemel 3d1e569bd2 Refactor page metadata access in Client class
- Introduced `currentPageMeta` method to encapsulate access to the current page's metadata.
- Updated references to page metadata throughout the codebase to use the new method, improving code readability and maintainability.
- Adjusted related components in the UI and linting logic to utilize the new method for consistency.
2026-02-03 15:57:34 +01:00
Zef Hemel 9057702557 Merge Client: Clean into Client: Wipe and remove Client: Clean
Client: Wipe now also deletes redundant other databases.

Related to #1798
2026-02-03 09:48:01 +01:00
Zef Hemel c41552f938 Slight document detection code refactor 2026-01-29 14:30:11 +01:00
Zef Hemel 10241e8be4 Add actual Lua code body for LuaDirectives to parent nodes for
completion events
2026-01-27 16:19:48 +01:00
Zef Hemel c25a073e81 WIP 2026-01-20 13:48:15 +01:00
Zef Hemel 9eaecaa324 Fixes #1769 2026-01-15 11:26:58 +01:00
Zef Hemel 688afded0f Picker tuning
* Removed code complete from mini editor (didn't really work anyway, and
  only use case was emoji)
* Changed meta picker to be more consistent with page picker
* Alt-space completion in page picker (completes "folder" to the top
  match)
2026-01-15 11:14:16 +01:00
Zef Hemel fb3dd51bdb Inline content refactor 2026-01-12 17:19:23 +01:00
Lennart OchelandGitHub 7ffcd83c44 Support |^| to set cursor position in virtual pages (#1764) 2026-01-08 16:15:57 +01:00
Zef Hemel 9acf314880 Fix initial index race condition 2026-01-08 12:10:45 +01:00
Zef Hemel 596b92cd55 Reindex refactor feature complete 2026-01-07 15:44:04 +01:00
Zef Hemel 658f6e4e18 Undoes the 2 stage index
This caused too many edge cases. Will work on optimizing the one-pass
index instead (not part of this commit).
2026-01-05 15:34:45 +01:00
Evgeny ZislisandGitHub eda9f17915 Fix Lua widgets not re-rendering when page metadata loads (#1759)
Trigger editor re-render after page metadata is loaded to ensure Lua
widgets re-evaluate with the correct context. This fixes issue #1729
where widgets would show broken state on initial page load because
ctx.currentPage would be nil until the metadata finished loading
asynchronously.

The fix dispatches an empty CodeMirror transaction after updating the
page metadata, which triggers all decorator state fields (including
Lua widgets) to re-render with the updated metadata.
2026-01-04 14:23:09 +01:00
Zef Hemel 2efeb93b47 Implements #1707
This splits indexing into two phases:

* preindex (where only pages, space lua, space styles are indexed)
* index (where everything else is indexed)

The goal is to get to more-or-less operational state quicker this way,
because probably most functionality can already be enabled after the
pre-index phase.
2025-12-10 09:48:09 +01:00
Zef Hemel 0f57a03542 Remove full-text search from SB core
Now available as separate library:
https://github.com/silverbulletmd/basic-search/blob/main/PLUG.md
2025-11-24 16:33:17 +01:00
Zef Hemel b0f6b9a33d Add permission check before write/delete operations This avoids
accidentally writing to a read-only file and only finding out about it
after a sync.

Also removes redundant space primitive implementations that weren't used
2025-11-19 14:57:10 +01:00
Zef Hemel 732c6a5589 Loading of plugs is no longer restricted to _plug
Builtin plugs are generated under Library/Std/Plugs path now.
2025-11-07 10:43:25 +01:00
Zef Hemel c3aea2cf8c When a Lua error occurs, report it and jump to source of occurance (best
effort)
2025-10-30 15:35:34 +01:00
Zef HemelandGitHub 272f293ddb Optional client encryption (#1640)
Implements #1268
2025-10-22 15:35:37 +02:00
Zef Hemel b126320c5a Better readOnly checking, making sure that tag pages are never saved,
for instance
2025-10-07 14:33:54 +02:00
Zef Hemel a2a784ddfe Fixes #1561
Last openen page information is now kept in the datastore and therefore
persistent even across tabs. This seems to also have fixed ther andom
behavior when deleting a page -> you always go back to your last opened
page (before the one you deleted).
2025-09-29 15:30:38 +02:00
Zef Hemel ea08c85202 Fixes #928
Command runs are now persisted to datastore
2025-09-29 15:20:14 +02:00
Zef Hemel d6190b7c05 Moving more files around 2025-09-29 11:17:55 +02:00
Zef Hemel bb602dd9e8 Moved some more code around
Mostly just shuffling files to different folders, but also: renamed
PagePicker to AnythingPicker
2025-09-29 11:03:06 +02:00
Zef Hemel dcafb5c5ff Lint 2025-09-24 12:58:33 +02:00
Zef Hemel ee3896ee75 Further code restructuring and fix detection of space path change 2025-09-24 12:57:56 +02:00
Zef Hemel f4336bf09f Code restructuring: eliminated the top-level lib/ directory 2025-09-23 17:00:34 +02:00
Zef HemelandGitHub a524c64884 Go backend (#1555)
* Replaces old Deno server with a Go implementation
* Restructured the code base accordingly
2025-09-19 13:23:20 +02:00