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>
- 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.
- 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.
* 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)
* 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)
* Moved YAML library import to index plug (so no async syscalls anymore)
should speed things up
* Merged task and item indexing
* Merged tasks plug into index (questionable)
* taskstate is now no longer a tag, but needs to be configured via
configs
When the server returns HTTP 500 or other 5xx errors, the client
was caching the error HTML page (e.g., Nginx error pages) and
attempting to parse it as JSON on boot, causing a lockout with
the message 'Could not process config and no cached copy'.
This fix adds all standard 5xx server error codes to the
offlineStatusCodes list, ensuring the client enters offline mode
and uses cached data instead of caching error responses.
Before: Only 502, 503, 504, 530 triggered offline mode
After: All 5xx errors (500-511, 530) trigger offline mode
Fixes#1724
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.