Commit graph

24 commits

Author SHA1 Message Date
igor
a36949aab5 Add recovery backups and fix theme/title edge cases 2026-05-18 19:34:06 +12:00
igor
1c236c9721 Replace hand-rolled markdown renderer with markdown-it; fix blank-line round-trip and editor UX
- Install markdown-it@14.1.1 as server-side renderer (renderMarkdown only)
- Preserve all Joplin extensions: underline (++..++), checkboxes,
  blank-line markers, softbreak→<br>, resource URIs, spellcheck attrs,
  hx-* strip, fence/code/image/link render overrides
- Fix blank-line round-trip: emptyDiv/emptyP Turndown rules now return
  the BL sentinel instead of '<br>' (which line 611 inflated to 4 newlines)
  or '' (which made blank-line edits never save)
- Disable CSS scroll anchoring in preview editor so images flow down
  naturally when text is typed above them
- Narrow the Notebook + button label and padding in the nav header
- Bump static asset version to 20260501a
2026-05-01 13:20:22 +12:00
igor
003dc817de Refactor mobile shell to state machine; enforce single-screen invariant
Some checks are pending
Build and push Joplock image / build-and-push (push) Waiting to run
Eliminates fragile ad-hoc DOM toggling that allowed two mobile screens to
render simultaneously. All transitions now go through setMobileState()
reducer; renderMobile() is the only function that writes
.mobile-screen-active. assertSingleActiveScreen() self-heals violations
and traces them. Test asserts the architectural invariant in source.

Also: DB session lookup fails closed on transient errors instead of
crashing; mobile back-save uses formHash (not UI badge); single-screen
CSS via display:none/flex (no transforms); resize debounced without
reload; aria-hidden warning fix.
2026-05-01 00:10:43 +12:00
igor
af9a8fd2c0 fix rescale issues 2026-04-30 12:11:47 +12:00
igor
00e1172121 fix mobile shell layout and add display mode setting 2026-04-30 09:13:46 +12:00
igor
3aff615878 Add vault/notebook encryption: client-side AES-256-GCM E2EE with SVG lock icons, mobile vault support, startup resume gate, and re-entry guard
Some checks failed
Build and push Joplock image / build-and-push (push) Has been cancelled
2026-04-28 22:25:46 +12:00
igor
3e30ad1b68 offline detection 2026-04-27 22:05:42 +12:00
igor
082eea707b fix trash 2026-04-27 17:50:48 +12:00
igor
b735224377 Refactor route rendering and harden editor session handling
Some checks are pending
Build and push Joplock image / build-and-push (push) Waiting to run
2026-04-27 00:24:23 +12:00
igor
e8d0d6bdd5 Keep checked text at normal color, only accent the icon
Some checks are pending
Build and push Joplock image / build-and-push (push) Waiting to run
2026-04-26 17:40:32 +12:00
igor
840612fb3b Remove strikethrough from checked checkboxes 2026-04-26 17:39:26 +12:00
igor
d7d1815ac7 Match checkbox spacing to bullet lists, tighten icon line-height 2026-04-26 17:36:32 +12:00
igor
8db457a903 Reduce checkbox list item spacing 2026-04-26 17:33:28 +12:00
igor
1be60d47d5 Fix checkbox alignment: use flexbox instead of hanging indent 2026-04-26 17:32:01 +12:00
igor
b51048db8d Make checkbox icon bigger/bold with accent color, independent from text styling 2026-04-26 17:30:07 +12:00
igor
46bfc5f4f3 Make checked checkbox items bigger and bold 2026-04-26 17:27:54 +12:00
igor
63758db294 Style checked checkboxes with accent color 2026-04-26 17:26:25 +12:00
igor
9d6531cbf8 Revert checkbox icon span — broke click-to-toggle; no CSS-only solution without JS changes 2026-04-26 17:24:28 +12:00
igor
7a96e1a997 Style checked checkboxes with accent color icon in preview mode 2026-04-26 17:22:26 +12:00
igor
412d4b7ef0 Fix UX issues: note flash, search input drop, spinner on search/mobile, tablet on phone 2026-04-26 16:23:09 +12:00
igor
245ceae603 Fix tablet view note list scrolling by adding min-height:0 and overflow:hidden to grid items; update plan to reflect Phase 6 completion 2026-04-26 15:01:37 +12:00
igor
fd468fe3e3 implement lazy folder expansion and paginated note loading for large databases
- Add DB index on (owner_id, jop_type, jop_parent_id, jop_updated_time DESC)
- New folderNoteCountsByUserId query: GROUP BY folder, no row data fetched
- New noteHeadersByFolder query: paginated per folder (LIMIT 100)
- navData() now fetches only folders + counts (no note rows on page load)
- navigationFragment: lazy mode renders empty note lists, lazy-loaded on expand
- toggleNavFolder / initNavPanel: htmx fetch on first expand, data-loaded guard
- Add /fragments/folder-notes endpoint for lazy per-folder note pages
- Add folderNotesPageFragment with Load more button for pagination
- Mobile: folders use counts Map, notes use paginated noteHeadersByFolder
- Tests: 129/129 passing
2026-04-26 12:22:05 +12:00
igor
91fb055c75 improve mobile search and editor state
Some checks are pending
Build and push Joplock image / build-and-push (push) Waiting to run
Keep search context when opening notes and make in-note search behave consistently across desktop, mobile, markdown, and render modes.
2026-04-26 00:55:23 +12:00
igor
d606ecf60f fix mobile resume startup and editor targeting 2026-04-25 20:51:37 +12:00