Commit Graph
149 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
aphymiandGitHub 309e1f8d85 Fix minor bugs in MD syntax rendering mode (#1537)
* fix: restore tag styles when syntax rendering on

`hashtagPlugin` was missed in previous commits. It's now included
whether markdown syntax rendering is on or off.

* fix: remove stray margins from md syntax rendering

Some elements were accidentally given margins while MD syntax rendering
is on, so this commit excludes them from that style rule.
2025-09-12 14:30:39 +02:00
aphymiandGitHub 6914d4bc31 Add command to toggle markdown syntax rendering (#1502)
* feat: add command to toggle clean mode

* refactor: simplify wiki_link no-clean-mode logic

* refactor: use more sensible clean-mode toggling logic

* fix: fix clean-mode-off not lasting across reloads

* refactor: move var declaration to where it's used

* feat: add root data attribute for clean mode state

This allows writing styles based on whether clean mode is currently
enabled or disabled.

* feat: reset clean-mode-off syntax color

* feat: un-hide lua directives in clean-mode-off

* style: format changes from 60379b1

* feat: rename 'Toggle Clean Mode' command

'Toggle Clean Mode' is now 'Toggle Markdown Syntax Rendering', and along
with the change in semantics, now defaults to false. The associated
variables have also been renamed.

* docs: add MD syntax rendering command to docs
2025-09-10 08:28:21 +02:00
Zef HemelandGitHub fe5dc80a14 Expose file system API on /.fs instead of root (#1507)
Fixes #1506
2025-08-27 09:58:11 +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 95ee876986 deno fmt 2025-08-02 14:27:22 +02:00
MrMugameandGitHub 3518873c9e Allow multiple panel widgets (#1476)
* Return event results in order

* Remove a dispatch

* Allow multiple top and bottom widgets

* Add top instead of bottom margin for bottom widget

* Allow refreshing of widgets

* Revert "Remove a dispatch"

This reverts commit 88cc33ad57f2f664cdb597e2c7f7ec35816810fc.

* Copy whole selection as described in #1476
2025-08-02 14:15:28 +02:00
MrMugameandGitHub fe40041dc7 Fix inlined content (#1475) 2025-08-01 23:25:01 +02:00
MrMugameandGitHub 0e2906e8f7 Increase contrast for Filterlist descriptions (#1457) 2025-07-22 22:08:45 +02:00
Michael Schmidt-KorthandGitHub f0ddb8c631 upd: group commands by category (#1447)
* upd: group commands by category

* fix: remove unused variable
2025-07-09 10:44:38 +02:00
MrMugameandGitHub f338556acd Merge pull request #1437
* Remove unnecessary styles

* Be more rigorous about panels
2025-06-21 18:00:42 +02:00
Michael Schmidt-KorthandGitHub 211d81a28d Merge pull request #1435
* upd: visualize markdown column alignment (based on #1293)

* fix: Table formatter inconsistencies
2025-06-21 17:50:07 +02:00
Michael Schmidt-KorthandGitHub 00326fccb9 upd: Improved Mention UI (#1436) 2025-06-21 17:38:52 +02:00
Zef Hemel 5c45f671d1 More cleanup 2025-06-12 20:40:31 +02:00
Zef Hemel 8d3dc4cc4e Refactor, cleanup 2025-06-12 20:30:01 +02:00
Zef Hemel b942ebabad Visual indication of initial indexing progress (red circle) 2025-06-12 14:35:16 +02:00
+1 766fb96ff2 Adding support for hosting with URL prefix (#1357)
* Adding support for hosting with URL prefix to make reverse-proxy setup on sub-path possible

* Adjusting recent changes to auth.html (changing to relative URLs)  after rebasing from upstream

* Adjusting service_worker and application manifest to support URL-prefix

* Add notes on Space Lua Pattern Matching (#1366)

* Remove common/space_lua/stdlib/math.md (#1371)

* Escape pipe symbol in string.gsub (#1370)

* feat: configure vim in CONFIG (#1369)

* Fix week calculation (#1368)

* Add more tests for week calculation

* Fix week calculation

* Add more tests

* Implement Lua built-in function os.difftime (#1367)

* Implement Lua built-in function os.difftime

* Test os.difftime

---------

Co-authored-by: Zef Hemel <zef@zef.me>

* Fix index page naming during server initialization (#1365)

* Allow non-zero shell exit codes (#1377)

* Generate version from git describe at build time (#1374)

* Generate version from git describe at build time

* Add 2.0-beta prefix

* Use Deno.Command instead of Deno.run

* Add missing case to math.random and check arguments (#1372)

* Fix paragraphs for the tag page (#1376)

* Render a predefined string for empty markdown table instead of pipe characters (#1387)

* Fix string.find (#1390)

* Fetch tags and history for proper version string generation (#1388)

* Fix support for disabling shortcuts (#1393)

* Add GitHub Actions Cache to reduce build times (#1394)

* Order strings in queries using collation algorithm (#1391)

Configurable with queryCollation, default value maintains old behaviour.
Added tests, schema, example settings, and documentation to query page.

Close: #614
Close: #1316

* Utility function to handle empty query results and templates (#1386)

* Add global Lua function 'some'

Moved documentation for 'each' function to non-standard section.

* Revert "Add optional argument to template.each for empty collection output (#1359)"

This reverts commit b73dadec67.

* Reimplement #1359 using 'some' function

* Update Lua to event.listEvents to match plugos syscall (#1397)

The documentation, example, and other function names use
`event.listEvents`, but `event.list` is being registered with the
client.

* Update widget header to not overflow container (#1410)

Also add a 10px margin below the header to maintain consistent spacing
around the widget contents.

* fix: case insensitive admonitions by default (#1409)

* fix: closing bracket is missing (#1408)

* Add optional priority attribute to PageCreatingContent (#1392)

* Add optional priority attribute to PageCreatingContent

* Minor simplification

* Fix comments

* Revert changes

* Add pageEventHandlers

* Use UTC year, month, and date for strings lacking time components (#1403)

* feat: allow CONFIG.md in any directory (#1398)

* fix: bundle external dependencies (#1379)

* Deno bump

* Copy-edit splash screen text (#1413)

* Fixes #1401 by implementing Lua's select

* Fixes offline capability of PWA (I hope).

Now storing config in localStorage.

* fix lint

* Reduce blast radius of Lua errors

* Fixes #1411: adds 'priority' setting for space style

* Refactor: Merging common/ into web/

* Fixes #1400

* Improves #1312 by rendering Lua expressions (but not widgets)

* Fix minor typos, add configuration to the docs

---------

Co-authored-by: wbhouston <wmbhouston@gmail.com>
Co-authored-by: Lennart Ochel <lennart.ochel@outlook.com>
Co-authored-by: Matthias Benaets <89214559+MatthiasBenaets@users.noreply.github.com>
Co-authored-by: Zef Hemel <zef@zef.me>
Co-authored-by: Marek S. Łukasiewicz <marek@lukasiewicz.tech>
Co-authored-by: Ivan Alejandro <ivanalejandro0@gmail.com>
Co-authored-by: Albert-Jan de Vries <aj+github@albert-jandevries.nl>
Co-authored-by: Cole Stowell <121599022+costowell@users.noreply.github.com>
Co-authored-by: Jim Tittsler <jimt@onjapan.net>
2025-06-04 15:15:14 +02:00
Zef Hemel a76f272635 Deno bump 2025-06-04 09:17:20 +02:00
Matthias BenaetsandGitHub 9e7e201b92 fix: case insensitive admonitions by default (#1409) 2025-05-26 20:02:21 +02:00
wbhoustonandGitHub 1630bc3493 Update widget header to not overflow container (#1410)
Also add a 10px margin below the header to maintain consistent spacing
around the widget contents.
2025-05-26 20:01:32 +02:00
Zef Hemel 3e6097a964 vim related styling fixes 2025-04-30 11:02:33 +02:00
Stan Ionitoiu-JanssenandZef Hemel 6b2390badf fix(menu): Move sync progress wrapper outside of actions menu (#1309) 2025-03-22 20:47:37 +01:00
Zef Hemel 1284d15a8b Remove command buttons 2025-03-21 16:12:10 +01:00
Zef Hemel fa8f07a123 Kinda working 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
Stan Ionitoiu-JanssenandGitHub 5bf33eca30 fix(menu): only hide expander button and show button on (small) desktop (#1303) 2025-03-21 16:04:44 +01:00
Zef Hemel 6de6ea6efb Lint fmt 2025-03-18 18:23:25 +01:00
Stan Ionitoiu-JanssenandGitHub 67b612149b feat(menu): Make menu responsive (#1298)
* feat(menu): Make menu responsive
* feat(menu): make vertical menu opt-out by specifying custom CSS classes
* feat(menu): Add option to style the menu as a bottom-bar on mobile
* fix(settings): rename values for mobileMenuStyle
2025-03-18 18:04:30 +01:00
Stan Ionitoiu-JanssenandGitHub 79b57b8d9b fix(quote): prevent extra indent when first word is not an admonition (#1295)
Fixes #792
2025-03-17 18:54:20 +01:00
Zef Hemel 29570a3760 Allow for custom widgets through hooks:renderBottomWidgets and hooks:renderTopWidgets 2025-03-16 14:35:59 +01:00
MrMugameandGitHub 51b0fcd819 Combine reload functions in client (#1283) 2025-03-08 17:17:29 +01:00
MrMugameandGitHub e61a447d98 Implementing #913 (#1230)
Implemented custom editors
2025-03-06 15:11:17 +01:00
Zef Hemel 6f4b02298c deno task fmt 2025-02-23 20:46:41 +01:00
Mufeed AliandGitHub c27c83bc44 poc: Add indentMultiplier configuration for customizable indentation in editor (#1212) 2025-02-01 14:35:22 +01:00
Max RichterandGitHub c6624085f0 fix: strike through links in tasks (#1225) 2025-01-30 14:54:57 +01:00
Zef Hemel bf6a34f82c Lua Integrated Query 2025-01-13 20:25:39 +01:00
TR StaakeandGitHub 2020e85a6f Update how tags are rendered to allow for custom styling (#1179)
* Updated how tags are rendered to allow for custom styling via space-styles

* Wrapped the existing span for a tag with an anchor element <a> to
improve ux for screen readers
* Added data-tag-name attribute to tags so that given a tag `#my-tag` it
will have the attribute `data-tag-name="my-tag"` added to the new `<a>`
element wrapper allowing for end users to target tags for styling with a
css selector such as `.sb-hashtag[data-tag-name="my-tag"]{...}`

* Updated Docs
2024-12-14 09:57:46 +01:00
Mufeed AliandGitHub c52e9e71f0 Few dark mode fixes and top bar improvements (#1137)
* fix: Fix progress bar coloring and remove % on indicator

Fixes #1129

* fix: Improve header, action buttons and progress bar spacing

* fix: Fix caret color on sb-mini-editor
2024-11-07 21:28:14 +01:00
Vighnesh ShenoyandGitHub 68ead02975 fix: update unused scss variable for directive mark color (#1142)
Signed-off-by: Vighnesh shenoy <vighneshq@gmail.com>
2024-11-07 21:19:37 +01:00
Zef Hemel 64e398fd90 deno fmt 2024-10-11 15:34:27 +02:00
Zef Hemel f74bab0aca Lua: inline directives improvements 2024-10-07 19:17:12 +02:00
Zef Hemel 1299d85e9a First simple Lua directive Live Preview 2024-10-05 15:37:36 +02:00
Ruibin XingandGitHub bddb1b5da9 Export PDF through print. (#1065)
Add print button for markdown panel
2024-08-28 17:32:29 +02:00
onespacemanandGitHub 7c23e8d622 Widget buttons for transclusions (#942) (#1013)
Widget buttons for transclusions
2024-08-08 20:19:41 +02:00
onespacemanandGitHub 45166ccd93 Embed video, audio and pdf (#1008) 2024-08-02 16:30:39 +02:00
RossandGitHub 7fa1aabf3e Unified the size of headers and sb-line-headers (#972)
* Unified the size of headers and sb-line-headers
2024-07-23 21:10:36 +02:00
onespacemanandGitHub 5fe77083ae Fix #850 (#964) 2024-07-19 17:00:13 +02:00
Zef Hemel e4da0b7849 Refined implementation of #560 2024-07-14 11:29:43 +02:00
Zef Hemel dcde6aaf7c Better updating of decorations 2024-07-13 14:55:35 +02:00
Deepak NarayanandGitHub 850c06fd70 Fixes #560 and provides an initial implementation for assigning (#940)
decorators to tags.

This patch enables decorations for user specified tags - starting
with handling only a single decoration - a 'prefix' to be added
to the page name. Prefix is handled in the top bar title,
page navigator, wiki-links appearing within a page as well as
page autocomplete suggestions.
2024-07-13 13:56:00 +02:00