Commit Graph
324 Commits
Author SHA1 Message Date
Zef Hemel ea44937863 anchors: extend Ref grammar with anchor variant ($anchor) 2026-04-30 17:52:21 +02:00
Zef Hemel f76060fb08 fix tests 2026-04-26 17:24:37 +02:00
Zef Hemel 5833919faf More robust traversals in case of invalid markdown trees 2026-04-26 17:22:29 +02:00
Zef Hemel 6dec86d236 Add initial schema support for native file menu bindings 2026-04-23 09:31:04 +02:00
Zef Hemel b207e8a06e Client: extract prettifyShortcut into shared lib
Move isMacLike and prettifyShortcut out of command_palette into plug-api/lib/shortcut so the configuration manager's shortcuts UI can render identical key notation.
2026-04-21 16:54:24 +02:00
Zef Hemel a34c2d3ac9 Plugs: per-path load/unload syscalls
Track the source path on each Plug and rename the sandbox-factory "cacheKey" to "path" to reflect what it actually is. Fold the one-liner web_worker_sandbox helper into a WorkerSandbox.forPath factory and add system.loadPlug / system.unloadPlug syscalls so individual plugs can be (re)loaded by path — foundation for the upcoming configuration-manager libraries UI.
2026-04-21 16:51:33 +02:00
Zef Hemel e226bfd685 Client: add editor.focus syscall 2026-04-21 16:50:34 +02:00
Zef Hemel 0c9c07b3e6 Config: schema defaults, UI categories and annotations
`config.define` now propagates schema `default` values, so features like smart quotes no longer need their own fallback constants.

Adds `defineCategory` / `getCategories` for the upcoming configuration  manager UI.
2026-04-21 10:03:40 +02:00
Zef Hemel efd827b721 Implements #510
Extracts almost all codemirror keyboard shortcuts into proper SB
commands so they can be rebound

Bonus: renders prettier versions of keyboard shortcuts on Mac
2026-04-17 16:45:11 +02:00
Zef Hemel 0627e7cb49 Fixes #1931 and #1923 (hopefully)
The service worker's proxy fallback only matched the wrapped "Offline"
error from HttpSpacePrimitives, but raw fetch() throws browser-native
errors like
"Failed to fetch" (Chrome), "NetworkError..." (Firefox), or "Load
failed"
(Safari). This caused a hard 503 instead of falling through to serve
local
data. Additionally, the `fullSyncConfirmed` flag reset on every service
worker
restart, forcing unnecessary proxying even when synced data existed in
IndexedDB.

In this commit:
- Use `isNetworkError()` in proxy_router.ts to catch all browser network
  errors
  and fall through to local serving instead of returning 503
* Recover `fullSyncConfirmed` from persisted sync snapshot on SW
  restart, so
  previously synced spaces serve locally immediately
* Adds e2e tests trying to emulate this behavior and prevent regressions
2026-04-14 08:01:43 +02:00
Zef Hemel 78a1dc92ac Fixes #1908
Now only "#meta" and "#meta/" prefixed tags are considered meta tags,
not "#metabase"
2026-03-26 14:03:49 +01:00
Zef Hemel d1570a6217 lint 2026-03-20 13:34:35 +01:00
Zef Hemel e527be8668 Optimizations to tree traversal and page indexes
* Added benchmark suites for both

Should all be behvior preserving
2026-03-20 13:25:28 +01:00
Matouš Jan FialkaandGitHub 8f7e525812 Fix mobile tasks, annoying caret jumping and empty widgets on navigation (#1890) 2026-03-17 22:16:58 +01:00
Brett AnthoineandGitHub 356bc82986 Add optional stdin to shell syscall (#1885) 2026-03-14 20:55:11 +01:00
Zef Hemel ec40aa0838 Add action buttons to flashNotification
Used by upgrade notification
2026-03-10 16:07:25 +01:00
Zef Hemel d9f4b93795 Eliminate (most) uses of the client global
Also an opportunity to refactor the transclusion code, which had become
very messy
2026-03-10 14:02:05 +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 bbcd9ac6aa Introduce new noFloatingPromises lint rule and fix violiations 2026-03-08 15:49:45 +01:00
Zef Hemel 5c9dba30de Merge branch 'main' into to-node 2026-03-06 14:37:03 +01:00
Matouš Jan Fialka 81f5ec7f67 Fix table cell alignment for missing and misaligned cells
The table style is determined by the header row. After normalizing the
header (filling empty cells between consecutive delimiters), extract
two properties: the column count and whether the header starts with
a delimiter.

For each data row, normalization proceeds in three steps. First, fill in
empty cells between consecutive delimiters (this handles empty cells in
the middle of a row). Second, if the header has no leading delimiter but
the row does, insert an empty cell after the row's leading delimiter (this
corrects the one-position shift caused by the row having a leading pipe
that the header lacks. Third, if the row has fewer cells than the header
column count, pad with empty cells at the end (this handles rows that
are shorter than the header because trailing pipes or cells were
omitted).

The same normalization is applied both in the renderer and the indexer.

Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>
2026-03-06 14:20:48 +01:00
Zef Hemel d6424b714a Merge branch 'main' into to-node 2026-03-06 13:38:23 +01:00
Zef HemelandGitHub c75f48d8a3 Merge pull request #1819 from onespaceman/panels
Panels - strings to elements
2026-03-06 13:30:03 +01:00
Matouš Jan Fialka 7c35c05367 Fix regression
Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>
2026-03-06 08:52:54 +01:00
Matouš Jan Fialka 9b37060d9f Extract normalizer to helper shared by both parser and renderer
Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>
2026-03-06 08:45:16 +01:00
Zef Hemel dbf275d75b Introduce biome as linter with lint fixes 2026-03-06 08:05:13 +01:00
Zef Hemel 803c5c478d Merge remote-tracking branch 'origin/main' into to-node 2026-02-27 15:05:49 +01:00
Zef Hemel 336e87672f Simplifies #1724
Now considers any HTTP status >= 500 < 600 as offline
2026-02-26 11:39:43 +01:00
rktjmpandGitHub 472ff93416 Consider "" to be an invalid path (#1847) 2026-02-21 17:55:23 +01:00
Zef Hemel 99bbb37ff0 Fix make check 2026-02-15 08:35:06 +01:00
Zef Hemel 02bd8ed362 Migration Deno -> Node.js
* First pass
* Now using vitest for tests
2026-02-14 22:08:35 +01:00
onespaceman 9129f15e57 Panels - strings to elements 2026-02-05 21:44:01 +00:00
Zef Hemel 0773df31e2 Add validation and error handling for object indexing
- Introduced a new `validate` callback for `tag.define`
- Added `index.validateObjects` API to validate and transform objects before indexing.
- Updated relevant documentation and examples to reflect these changes.
2026-02-03 15:59:04 +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 9b05beba16 First pass of custom tag behavior (schema and postProcess) support
See API/tag.md for explanations and examples.
2026-01-22 15:32:01 +01:00
Zef Hemel 8acad63565 Reorganized keyboard shortcuts a little bit and documented them. 2026-01-21 11:01:11 +01:00
Zef Hemel c25a073e81 WIP 2026-01-20 13:48:15 +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 840e0c5fea Tuned the filterbox and fuse-based filtering
* Upgraded fuse library
* Removed the category support in the filterbox, it was buggy and hides
  command names
* Tweaked fuse parameters for (hopefully) better matches in the page
  picker (and everywhere where the filter box is used)
2026-01-15 09:17:34 +01:00
Zef Hemel cf49b9372f Add message queue flushing to Client: Clean 2026-01-15 08:42:06 +01:00
Zef Hemel 062c1ea44d Fix: addParentPointers re-attaches parents even if a sub-tree already
has some

+ some cleanup

Properly addresses #1776
2026-01-14 08:33:29 +01:00
Zef Hemel 0f4d5a5437 system.getBaseURI syscall 2026-01-13 15:44:52 +01:00
Zef Hemel 3461b19f83 Item and transclusion refactor 2026-01-12 17:19:23 +01:00
Zef Hemel fb3dd51bdb Inline content refactor 2026-01-12 17:19:23 +01:00
MrMugameandGitHub 4cd12c8ae7 Set base inside of iframes (#1766)
* Set base inside of iframes

* Add `system.getURLPrefix` syscall
2026-01-09 15:30:34 +01:00
Zef Hemel ff60237d95 use readPageWithMeta syscall to reduce indexing cost 2026-01-08 14:06:58 +01:00
Zef Hemel dc21c5f6aa Add syscalls to retrieve both file and page content together with meta
in 1 call (optimization opportunity)
2026-01-08 14:05:50 +01:00
Zef Hemel 757896d502 Fixes #1730 Introduces editor:fold and editor:unfold event, also
documents some other events while at it.
2026-01-08 09:30:40 +01:00