Commit Graph
89 Commits
Author SHA1 Message Date
Zef HemelandGitHub dc2987a3f9 Sync engine rearchitecture (#1516)
* Don't require auth for .ping
* Finally introducing loggers
* Remove file list caching from disk_space_primitives
I don't think this is required anymore with the sync model
* Simplification of space primitives and more tests
* More reliable online status
* Add .zed settings
* Remove selfUpdate argument from `writeFile` no longer used
- Add `sync` config schema and document sync options
- Move sync config handling to client boot logic
- Move BootConfig type to ui_types.ts
- Remove sync env vars from server
- Update documentation for sync and architecture
* Improve sync logic and proxy routing for full sync state
* Add BoxProxy for late-bound client and improve Lua boot
- Add isMobile syscall for editor
* Add concurrency to sync process and log indexing duration
* Better service worker lifecycle management
2025-09-12 14:43:57 +02:00
MrMugameandGitHub 3aad24cc70 Fix the legacy support in editor.navigate (#1513) 2025-08-31 21:56:55 +02:00
aa0b95b31d The one about refs (#1496)
* [Major] Introduce a new `Ref` and `Path` type

This introduces a new `Ref` and `Path` type, which try to be as lightweight and rigorous as possible. More description in the PR

* [Minor] Updated Syntax

* [Minor] Updated Type

* [Minor] Renamed file

* [Minor] Updated type

* [Minor] Updated Syntax

* [Major] Rename css classes for wiki links

Previously all the parts of a wiki link were tagged with `sb-wiki-link-page`. This didn't make a whole lot of sense. Also the tag `sb-wiki-link` was could never render, because of the way `HighlightStyle` works. Now every part of a wiki link will be tagged with `sb-wiki-link` (i.e. the link, the alias, the dimensions). Invalid and missing links will be styled separately in a later commit.

* [Minor] Adjust to new API

* [Minor] Small changes

* [Minor] Function and file renames

* [Major] Syscall adjusments

Change behavior of `getCurrentPath` to actually return what's now considered a `Path`. `getCurrentPage(Meta)` now also correctly returns for documents. We could consider a rename to get rid of the `page` association

* [Major] Rework `Client`

Mostly minor adjustments for the new API. Some major changes in `navigateWithinPage` and some unecessary checks removed now

* [Major] Errors on navigate

This now throws an error when the user tries to navigate to a link that is invalid

* [Major] Minor adjustments and remove some old bulk

This does the typicall adjustments to the new API. A thing to consider is that invalid links aren't indexed. Also removed old code about template and query stuff. And reused a regex instead of copy pasting it.

* [Minor] Cleanup editor ui

* [Minor] Adjust to new API

* [Minor] Adjust to new API and reduce ugly regex

* [Minor] New API

* [Minor] Rework link cm plugin

* [Major] Rework wiki links

A lot of code cleanup, reworked for new APIs and also introduces "invalid links"

* [Minor] Part of the editor ui rework

* [Major] Adjust to new API

This also removes the `looksLikePathWithExtension` check. I don't think it was necessary.

* [Minor] PArt of editor ui rewrite

* [Minor] Adjust to new API

* [Major] Adjust renderer to new API

Invalid links now link to `#`

* [Major] Rewrite navigator

This still needs major rework, currently in a "got it working" state

* [Minor] Adjust file name

* [Minor] Mistake during rebase

* [Minor] Navigate to end of header

* [Minor] Remove `tweakEditorDOM` and use proper CM extensions

* [Major] Heavily clean up the navigation code

* [Minor] Make `PageNavigator` closable again

* [Minor] Small fixes to reduce errors bubbling up

* [Minor] Show error message if navigate fails

* [Major] Remove legacy `navigate({ kind = ` syntax

This removes the old navigation syntax. It's still supported but the user will be warned then using it. I also added some validation to editor.navigate for user provided refs.

* [Minor] Make notifications errors

* [Minor] Don't fail if header isn't found

* [Minor] Typo

* [Major] Remove cleanPageRef

* [Minor] Small bug

* [Minor] Align behavior between render and editor

* [Major] Remove `PageRef`. Pretty sure it's obsolete

* [Major] Remove pos from header as it's an invalid ref

* [Minor] Align with original behavior

* [Minor] Get tests working again

* [Minor] check that indexPage is valid

* [Major] Rewrite `resolve.ts` file

* [Minor] More tests, more fixes

* [Minor] Don't just append .md this is weird

* [Minor] More edge cases

* [Minor] Version bumping hono somehow fixes the `/` case

* [Minor] Smaller TODOs

* [Major] We can be a littler looser on the restrictions

* [Major] Change header indexing, to index with pos

* [Minor] More fixes for headers

* [Minor] Rename for clarity

* [Minor] Change more regexes to named groups

* [Major] Inline content rewrite

* [Minor] Fix TODO

* [Minor] Bump index version

* [Major] New Space Primitive to check paths

* [Minor] Fix #1214

* [Minor] Fix #1169

* [Minor] Remove TODO

This check is probably not needed anymore. Unsure. May look into it later

* [Minor] small bug

* [Minor] Not a good rebase without me needing to fix it afterwards

* [Minor] Improve fallback for file upload

* [Minor] Some fixes on the for resolving

* [Minor] Removed doubled test case

* [Minor] Resolve #860

* [Minor] Turn flash notification into an error

* [Minor] Change handling of `.` paths

* [Minor] Show empty URL for index page

* [Minor] Push correct ref to history

* [Major] Capture mini editor events in capture phase

This fixes the issue were when pressing arrowup or arrowdown changed the cursor position inside the editor

* [Major] Add prefix to `FilterList`

This now fixes issues were if you had a prefixed page you  con't properly search for it, because the search considered the prefix as part of the name

* [Minor] A little rigor for empty headers

* [Major] Fix #1404

* [Minor] `parseInt` returns `NaN` handle that

* [Minor] Use `fileName`

* [Minor] Fix comment

* [Minor] Fixes

* [Major] disallow `foo.png.md` and `/../`, etc. cases

* [Major] Change name of conflicted pages

* [Minor] Remove unecessary check

* [Minor] Remove some split code

* [Minor] Allow deletion of invalid files

* [Minor] Bug in the regex

* [Minor] Give some possibility of fixing incorrect names

* [Minor] Tiny bug with header completion

* [Major] Docs

* [Minor] Ignore errors for navigation inside of a page

This could be a problem when SB e.g. cached a scrollTop for a page, which, because e.g. the file is now deleted, doesn't exist anymore and thus CM throws an error, when trying to navigate

* Update conflicted copy regex in Maintenance.md

---------

Co-authored-by: Zef Hemel <zef@zef.me>
2025-08-24 16:16:19 +02:00
Zef Hemel 450ef50df7 Cleanup: more cleanup and moving stuff around 2025-06-17 16:12:18 +02:00
Zef Hemel fbf2e4bc45 Rename system.invokeCommand syscall to editor.invokeCommand 2025-06-17 10:55:51 +02:00
Zef Hemel 4155c5e38e Fix legacy syscall 2025-06-17 10:41:55 +02:00
Zef Hemel c70938e972 Better "O" in Vim mode 2025-06-16 19:14:03 +02:00
Zef Hemel c3672056fb Eliminate $lib 2025-06-16 18:53:21 +02:00
Zef Hemel 15657b6831 Fix lint 2025-06-13 10:29:27 +02:00
Zef Hemel 931b0bd16c Refactor vim mode naming
Rebind "o" to follow markdown editor's newline and continue behavior
2025-06-13 10:27:37 +02:00
Zef Hemel b942ebabad Visual indication of initial indexing progress (red circle) 2025-06-12 14:35:16 +02:00
Matthias BenaetsandGitHub ea3d6928cf feat: configure vim in CONFIG (#1369) 2025-05-04 20:42:00 +02:00
Zef Hemel 85310e915d codemirror-vim mode version bump 2025-04-30 09:18:46 +02:00
Zef Hemel 63db06a8c6 Fixed recently opened page tracking, fixed deletion of page when using dynamic index page 2025-04-17 14:44:38 +02:00
Zef Hemel f991a25a5a Add page existence check and improve cursor placeholder handling
- Introduced `pageExists` function in `space.ts` to verify if a page exists in the space.
- Enhanced cursor placeholder handling in `editor.ts` to prevent errors when the placeholder is not found, ensuring smoother text manipulation.
2025-04-06 08:59:22 +02:00
Zef Hemel be86e53398 Implement new slash commands and enhance editor functionality
- Added slash commands for inserting today's, yesterday's, and tomorrow's dates.
- Introduced new admonition commands for notes and warnings.
- Implemented a table command for quick table insertion.
- Enhanced the `insertAtCursor` function to support a cursor placeholder option.
- Updated `getSelection` to return the selected text along with cursor positions.
- Added a new widget function to display linked tasks in the editor.
2025-03-30 13:03:57 +02:00
Zef Hemel 4616cb19e2 Fix logout & clean command 2025-03-24 19:50:48 +01:00
Zef Hemel e7dc879722 More progress 2025-03-21 16:12:10 +01:00
Zef Hemel d50ddc2357 First very rough pass of cleanup 2025-03-21 16:12:07 +01:00
Zef Hemel 0812ba8287 Added some convenience editor syscalls 2025-03-16 15:53:00 +01:00
Zef Hemel dde532d1b6 Added silverbullet lua:repl command 2025-03-14 16:43:13 +01:00
MrMugameandGitHub d3cc3e0d48 Add image viewer (#1289)
* Fix legacy support for navigation

* Fixes timing issue with document editors

If silverbullet was directly loaded into a document editor it would set
the darkmode after loading the editor, causing a wrong value to be
passed

* Add basic `image-viewer`

This add adds a basic image viewer using the panzoom library from Timmy
Willison

* Svgs somehow don't accept 100% width

* Make `internal` a property of a message

* Add `editor.sendMessage` syscall

* Update forgotten internal syscall

* Add small info command to image-viewer

* Change indent to two spaces

* Move zoom in button to the right

* Switch rotation direction

* Display mime type instead of file extension
2025-03-14 09:42:23 +01:00
Zef Hemel d33db399c8 Auto complete and lint fixes 2025-03-07 15:13:47 +01:00
Zef Hemel 0a80c5c537 Collapse PageRef, DocumentRef and LocationRef into a single Ref type 2025-03-07 13:49:20 +01:00
MrMugameandGitHub e61a447d98 Implementing #913 (#1230)
Implemented custom editors
2025-03-06 15:11:17 +01:00
Allie StephanandGitHub 6190a4ff06 Vim Mode and Read Only Fixes (#1240)
* Vim Mode and Read Only Fixes

- remove client.focus call from global keydown handler. This call causes
  issues with vim mode.  For instance typing j with the editor not
  focused would insert a j before properly going to normal mode instead
  of just moving down a line as expected
- add client.reloadPage call to setUiOption syscall. This appears to fix
  read only mode that is broken without the above focus call.  In
  particular when switching between vim and regular mode read only mode
  was previously broken even with the client.focus call
- add client.focus call to CommandPalette onTrigger if no cmd is
  selected. Without the client.focus call above, the editor is no longer
  selected when exiting the command palette with escape - this call
  fixes that
- add watch-all task to deno.json to run all 3 watches in 1 terminal
  window

* Update watch-all

Fix watch-all order so that arguments get passed to watch-server
2025-03-02 15:22:33 +01:00
MrMugameandGitHub a6af94b9e3 Remove editor.setText syscall from client (#1263) 2025-02-25 20:02:59 +01:00
Simon CambierandGitHub 411416fe65 Feature/move lines up down (#1232)
* Move lines up/down
2025-02-23 20:49:52 +01:00
numanandGitHub 2a3c926849 add rebuildEditorState function to the syscalls (#1254) 2025-02-22 11:51:37 +01:00
Zef Hemel 2e96155a05 Support scrollIntoView in insertAtCursor syscall 2025-02-06 08:37:34 +01:00
Zef Hemel c2fea2d25b Lua work 2025-01-08 17:09:09 +01:00
Zef Hemel 6a30284bab Migration to Deno 2.0 2024-10-10 12:52:28 +02:00
Zef Hemel 28f3e454b6 Slightly different way of addressing #1085
saving files after local update with setTexrt
2024-09-24 17:34:46 +02:00
Zef Hemel d9aa6ef1c4 New window command 2024-09-10 14:38:41 +02:00
jcgurangoandGitHub eea8326220 Use setText instead of replacing entire editor state (#1056)
* Fix diffAndPrepareChanges
* Use setText instead of replacing editor state
* Isolate editor.setText transaction
2024-08-21 21:36:50 +02:00
Zef HemelandGitHub 6b69449d05 More JSR (#1027)
* Move all syscalls to JSR-style package naming
* Eliminating some prefixes in import maps
2024-08-06 20:11:38 +02:00
Zef HemelandGitHub 64b6d9e2df Space config (#1011)
Space config + a whole bunch of other tweaks
2024-08-02 16:47:36 +02:00
Zef Hemel c111f72e09 Lint error removal 2024-07-30 17:33:33 +02:00
Zef Hemel 64e116f75e lint cleanup 2024-07-30 15:17:34 +02:00
Marek S. ŁukasiewiczandGitHub a0f3f7ef41 Support linking to and moving to line number in pages (#988)
Support linking to and moving to line number in pages
2024-07-28 20:31:37 +02:00
Marek S. ŁukasiewiczandGitHub 75cd4b1383 Hide pages from auto complete with Page Decorations (#962) 2024-07-19 17:06:40 +02:00
Zef Hemel d6f0f61d30 Rebrand Template Picker to Meta Picker
As well as associated documentation changes
2024-07-07 12:12:05 +02:00
pihentagyandGitHub 0e3c5587f5 Delete line command (#866) 2024-05-25 23:12:48 +02:00
MaksandGitHub 8a3782e946 improve dependency management (#770)
* use import_map.json instead of per-file import

* remove test_deps.ts in favor of import_map

* remove common/deps.ts in favor of import_map

* use import_map instead of server/deps.ts

* make all plug-api files usable without an import_map

* make all lib files usable without an import_map

* remove web/deps.ts in favor of import_map

* fix plug build

* remove plug-api/deps.ts in favor of lib/deps.ts

* fix server deps bundled in client deps
2024-03-16 15:29:24 +01:00
95ae722a50 Implement space-style (#796)
* Implement space-style
* Add reloading styles to System: Reload

---------

Co-authored-by: Zef Hemel <zef@zef.me>
2024-03-09 12:26:58 +01:00
Zef Hemel 03ee9adc86 Fixes #644 2024-03-02 12:14:27 +01:00
Zef Hemel e919aa82e9 0.7.4 2024-02-29 15:23:05 +01:00
Zef Hemel e046415f05 First iteration of new take on sharing 2024-02-28 12:16:51 +01:00
Joe KrillandGitHub f49c5a0431 Include context when opening the command palette via syscall (#737) 2024-02-22 22:25:02 +00:00
Zef Hemel bb1e49a11e More moving stuff around 2024-02-08 21:12:23 +01:00