An attempt at documenting the changes/new features introduced in each release.
- Nothing new yet since 2.1.8
- New [[^Library/Std/APIs/Virtual Page]] API, internally used by:
- [[^Library/Std/Infrastructure/Tag Page]]
- [[^Library/Std/Infrastructure/Search]]
- Some fixes in
tonumberhandling - Default table renderer now renders
refattributes as links, so they’re clickable: ${query[[from index.tag "page" limit 3 select {ref=ref, lastModified=lastModified}]]} - Fix: render TOC correctly when header itself contains a link (by Oleksandr Kuvshynov)
- Fix: read-only pages are now never saved back to your space (could happen, e.g. with tasks on tag pages)
- Fix: Table of Contents widget works again
- Fix: Poor behavior when multiple pages are delete in sequence (by Oleksandr Kuvshynov)
- Lua:
- Setting a table value to
nilnow deletes it as a key, so it no longer appears intable.keys
- Setting a table value to
- Restructure of the
Library/Stdlibrary, added some more (self) documentation. See [[^Library/Std]] as an entry point. - Re-added
page:savedevent that was removed in 2.1 - When the clipboard API is used in Safari, will now give a proper error (Safari restriction) by (Noah Stanley)
- Full text search results now show full page path
- Space folders now support symlinks again (regression from 2.1)
- Lua: fixes in arithmetic model (by Matouš Jan Fialka)
- Lua: Removed unary plus from grammar (wasn’t actually supported) (by Matouš Jan Fialka)
- Bugfix: auth and service worker caching fixes
- Bugfix: docker health check failed when SB_URL_PREFIX was used
- Bugfix: infinite item index loop in obscure cases
- Fixed broken auth in Safari
- Renamed the inconstently named
index.search.enabletoindex.search.enabled - Last opened (for pages) and last run (for commands) timestamps are now kept persistently between client loads (and tabs)
- Fixed docker user and group creation issues
- Removed
file:deletedtriggering when checking forgetFileMeta(causing an infinite indexing loop in SilverSearch) - Server: HTTP Gzip compression is now enabled for sensible content types
- Nicer syntax to query tag objects from the index:
tags.pagebecomes an alias forindex.tag "page"(implemented here: [[^Library/Std/APIs/Tag]]) - Hidden files and folders (starting with
.) are no longer synced, as well as files without a file extension (those were not support anyway)
This is a major architectural overhaul compared to 2.0. Please — as always — make sure you regularly backup your space files to avoid any data loss. Nothing should happen, but better be safe than sorry!
- All new server written in Go (previously written using Deno). Uses significantly less memory and is significantly smaller in size.
- Docker base image is now based on Alpine (previously Ubuntu), further reducing memory and disk space usage.
- Significant engine re-architecture: see [[Architecture]] and [[Sync]], now lives in the service worker and parallelizes sync. Once upgrading a full resync will need to happen. Documents are no longer synced by default (you can enable this via config, see [[Sync]]).
- More configuration options for what to index (see [[^Library/Std/Config]] under the
indexsection) for the purpose of reducing local storage size and needless CPU waste. Some useful ones:config.set("index.search.enabled", false)to disable [[Full Text Search]] entirely (saves on processing and storage if you don’t use it)config.set("index.paragraph.all", false)to disable indexing all (untagged) paragraphs. This is also somewhat wasteful if you don’t query these.
- Disable ability to rename pages in read-only mode (by Jelenkee)
- Improved docker build + health check (by Zef)
- Added
templates.tagItemtemplate (by Andy Costanza) - Support links in table queryable objects (by Alex Dobin)
- Refactor of document editors (by MrMugame)
- Command to toggle markdown syntax rendering (by aphymi)
- Fix transclusions not being indexed as links (by MrMugame)
- Render links inside frontmatter code as clickable anchors (by Andy Constanza)
- New
SB_LOG_PUSHoption asking clients to push their browser JS logs to the server so they’re visible there. - Hot reloading plugs has been disabled because it caused some nasty race condition. To explicitly reload plugs without restarting the client, use the
Plugs: Reloadcommand.
- We’re now live!
For previous versions, see the v1 CHANGELOG