Highlights
The biggest Zorite release yet: encrypt your notes with a password, see them
as a graph, browse everything in one index, export any note to PDF, and make
the app yours with custom fonts and full theme control.
Added
- Password & encryption — encrypt the entire database with a password
(SQLCipher, AES-256). An unlock screen gates launch; Remember on this
device keeps the password in the OS keychain (macOS Keychain / Windows
Credential Manager; kernel keyring until reboot on Linux); an idle
auto-lock (5 min – 1 hour) and a Lock now action re-lock a running
app. The password itself is never stored — and never recoverable, so
don't lose it. Settings → Security. - Graph view — your pages and whiteboards as a Logseq-style map: linked
clusters lay out by a force simulation, orphan pages ring the outside.
Drag to pan or move nodes, pinch/⌘-scroll to zoom, click to open, hover to
highlight a neighborhood; a panel carries a legend with live counts,
search, and journal/orphan/whiteboard filters. Open it from All pages. - All pages browser — a sidebar list icon opens an index of every page,
whiteboard, and stored PDF: an A–Z/0–9/# strip and kind chips filter it,
rows show created/updated dates, and the filters stay pinned while you
scroll. - Export to PDF — right-click a tab or sidebar page (or ⌘P) to write the
note as a PDF, rendered like the reading view: styled text, tables,
images, alerts, typeset math, and mermaid diagrams. Pure-Rust, no browser. - Custom fonts & full theme control — Settings → Appearance picks the
app font (any installed family, or import a.ttf/.otf); custom theme
JSON can now override every color token (with#RRGGBBAAalpha) and name
its own font. Plus a text size setting (14–20 px) that drives all
three views. - GitHub alerts —
> [!NOTE]through[!CAUTION]render with icons and
themeable colors in both the reader and WYSIWYG (which hides the marker
and paints a label). The lenient single-line form works too. - Syntax highlighting — fenced code blocks highlight ~20 common
languages, themed to your skin, in reader, WYSIWYG, and PDF export. - Unlinked references — a panel under Linked References lists pages and
journal days that mention the open page's title without linking it; a
one-click Link wraps the mentions as[[links]]. - Auto-link as you type (opt-in, Settings → Markdown) — typing an
existing page title wraps it as a[[link]]on the boundary keystroke;
[[completion now suggests whiteboards too. - Namespace tooling — renaming a page cascades to its
Foo::*children
(links rewritten, atomically); right-click → New sub-page; child pages
show a clickable breadcrumb back to their ancestors. - Calendar entry markers — the jump-to-date calendar dots every day
that has a journal entry. - Journal back-to-top — a floating button appears once you've scrolled
and snaps back to today. - Image housekeeping — pasting or dropping an image whose contents are
already in the store reuses the existing file instead of duplicating it,
and Settings → General → Unused images sweeps unreferenced files to
the system trash (with a confirmation listing them). - Remember window position (Settings → General) — reopen with the size
and position you left, falling back to centered if that display is gone. - The
/menu now covers the whole markdown vocabulary — math, alerts,
footnotes, strikethrough, highlights, and more.
Changed
- Numbered lists are Word-style — nested levels display
1.→a.→
i., every list counts from 1 regardless of the raw digits, a break
restarts numbering, and Tab-indenting starts the nested list at 1. Editing
a list item no longer shifts the line left: the rendered markers stay put,
and only stepping into the marker itself reveals the raw text. - Reader and WYSIWYG render alike — tables, code cards, line height, and
list spacing/indentation now match across the two views, and both consume
one shared link/alert/table grammar so they can't drift apart. - The journal feed re-renders faster — parsed markdown is cached by
content, so typing in one day no longer re-parses every visible day.
Fixed
- Opening a note containing certain non-ASCII text (e.g.
¯\_(ツ)_/¯)
crashed the app; both markdown engines now scan multi-byte text safely. - ⌘V of an image or a copied file into a page did nothing (or pasted
the file's name as text); images now insert at the caret, copied files
import like a drop, and whiteboards accept pasted files at the viewport
center. - Renaming a page now also rewrites
[[ spaced ]]and[[aliased|label]]
link variants (deliberately-cased variants like[[FOO]]are left as
written), and never edits links inside code blocks. - Auto-pair — typing
[over a selection that itself starts with[
wraps the selection instead of deleting it. - The Journal tab no longer draws a stray left border against the
sidebar.
What's Changed
- docs(changelog): add 0.5.0 (16efa88)
- chore: fixes (1db1250)
- feat(window): remember window position and size across launches (4ffa89d)
- feat(journal): back-to-top button; rename follows link variants (5672ba1)
- feat(pages): unlinked references with one-click linking (09b3ca1)
- perf(markdown): content-keyed parse cache in the reader (b714051)
- docs: catch README + docs site up to the 0.5.0 feature set (16940a4)
- feat(calendar): mark days that have journal entries (4c3b294)
- docs(security): document password encryption in README + docs site (d73ddbe)
- feat(security): password-encrypt the database, unlock screen, auto-lock (faab67d)
- feat(pages): parent breadcrumb on namespaced pages (ad48c66)
- feat(pages): cascade namespace renames + a "New sub-page" action (6e2af16)
- docs(todo): AVIF decode shipped in 28a5ebd — check it off (5a14c3c)
- fix(paste): route image and file clipboards to the right handler (66e69a6)
- feat(images): dedupe identical imports (348c743)
- feat(images): orphan GC with confirm-to-trash (d25271b)
- feat(editor): Word-style ordered lists that hold still while editing (9000828)
- feat(graph): fit-to-view, node drag, search, and an organic layout (64f3e72)
- fix(markdown): don't panic on multi-byte text in the inline scanners (0d45301)
- feat(graph): control panel with legend, statistics, and node filters (77c7442)
- feat(graph): add a Logseq-style graph view tab (c2c2c3b)
- feat(pages): add an All pages browser tab (0efeab8)
- fix(autopair): wrapping a selection that starts with the typed opener (d1819ff)
- feat(links): auto-link page titles as you type; whiteboards join wiki-links (19cf211)
- docs(demo): exercise alerts, autolinks, and the code-highlighter hook (476e7b7)
- refactor(markdown): finish the restructure — shared linkables, view feature (545bbcc)
- docs(todo): fold in 0.5.0 progress, drop stale entries (519c44c)
- refactor(markdown): shared recognition module + reader parity round 2 (bca140c)
- feat(parity): reader and WYSIWYG render alike, per the new parity rules (393afad)
- fix(reader): tables and code cards size to content, like WYSIWYG (c1ee6d0)
- feat(markdown): syntax highlighting for fenced code blocks (1e0ffe6)
- feat(export): in-app PDF export with render-view fidelity (ba8cbfc)
- fix(tabs): hide the Journal tab's left border against the sidebar (3d26a19)
- feat(slash): fill the / menu's markdown gaps (6dbc3da)
- feat(markdown): GitHub-style alerts in both views, themeable (695046a)
- ci(deny): ignore quick-xml DoS advisories pinned by wayland (e21b117)
- docs(changelog): add 0.4.2 (af17a08)
- fix(editor): make the table add-row "+" strip reliably clickable (10709de)
- feat(settings): configurable note text size (18890fd)
- feat(theme): custom app fonts and full theme customization (2b4f4a3)
- docs(todo): reflect completed work from v0.4.0–0.4.1 (a786016)
- docs: name the three views and make them searchable (99ef734)
Full Changelog: v0.4.1...v0.5.0