Commit Graph
116 Commits
Author SHA1 Message Date
eezd d34d1f2183 feat(ui): establish glass workbench and local typography 2026-10-22 14:46:22 +08:00
eezd ed83b2c590 Replace Shiki code highlighting with Prism.js 2026-10-22 13:08:12 +08:00
eezd b2d5a1f319 Restore the built-in Shiki GitHub Dark code palette 2026-10-22 12:26:33 +08:00
eezd 82d08b9d73 Add persistent pinned tabs protected from bulk closing 2026-10-22 12:11:08 +08:00
eezd 19d0feac23 Keep code block spacing stable when revealing fences 2026-10-21 21:05:07 +08:00
eezd 15e036b9cd Add source editing toggle beside the outline button 2026-10-21 19:14:45 +08:00
eezd 73ff88c3c3 Fix custom shortcut synchronization across platforms 2026-10-21 18:02:25 +08:00
eezd b4054189cf Fix attachment scanning for literal text and multiline links 2026-10-21 18:02:18 +08:00
eezd c08bb8a182 Document shortcuts, folder galleries and batch sharing 2026-10-21 16:37:01 +08:00
eezd 0ce509a0fe Finish shortcut dispatch and verify file operation safeguards 2026-10-21 16:34:29 +08:00
eezd e028614dba Adapt built-in themes to the supplied editor snippets 2026-10-21 16:34:02 +08:00
eezd 828d50f242 Support live collection shares with stable member scopes 2026-10-21 16:16:53 +08:00
eezd ffc95d6dbc Add tree multiselection, batch actions and Markdown export 2026-10-21 16:10:49 +08:00
eezd f473ec64b6 Manage folder images in a gallery and hide asset directories 2026-10-21 16:05:01 +08:00
eezd fbce545d98 Allow custom command shortcuts and heading bindings 2026-10-21 16:02:58 +08:00
eezd 7344bb19dc Polish sidebar controls, font input and tab menus 2026-10-21 15:57:33 +08:00
eezd d253536009 Add image listing and asset management
Show images in asset directories with preview, rename, replacement, and trash recovery. Update local Markdown references when images move and restore original files if related metadata cannot be committed.

Refresh image previews after replacement and compare actual contents when deduplicating subsequent uploads.
2026-10-21 15:14:07 +08:00
eezd 8b54ccba18 Remove setup code from first-run initialization 2026-10-21 14:19:11 +08:00
eezd 8b54258df5 Update project collaboration and implementation guidelines 2026-10-21 14:11:24 +08:00
eezd 34d2acbbd5 Add Markdown and ZIP notebook import 2026-10-21 12:56:38 +08:00
eezd 903a617439 Move app installation entry into About settings 2026-10-21 12:32:15 +08:00
eezd 606e08ca39 Use port 21000 and document CDN hostname requirements 2026-10-21 12:18:57 +08:00
eezd 96596110ec Add Docker Compose deployment and HTTPS proxy configuration 2026-10-21 12:04:53 +08:00
eezd 9e9ab03c2b Add About settings with build identity and API documentation 2026-10-21 11:47:27 +08:00
eezd fcd0fdd7a4 Recognize sibling ordered list items when rewriting asset links 2026-10-21 11:32:48 +08:00
eezd f188f0fc32 Add synchronized editor spelling and tab width preferences 2026-10-20 19:08:43 +08:00
eezd f9cfb138ea Resync initial event connections and render nested task blocks 2026-10-20 18:59:54 +08:00
eezd 2df1ab87df Preserve code samples and watcher state during file updates 2026-10-20 18:59:41 +08:00
eezd 3a8248e560 Preserve drafts and asset paths across note moves 2026-10-20 18:59:26 +08:00
eezd 8c13dfeaec Convert pasted web content to Markdown and import remote images 2026-10-20 18:18:00 +08:00
eezd 84e89c8fe4 Support live recursive folder shares and follow subject moves 2026-10-20 17:20:23 +08:00
eezd 89472fe6fd Subscribe to vault events before completing WebSocket upgrades 2026-10-20 17:01:29 +08:00
eezd e66fee9dac Include note filenames in new share links 2026-10-20 14:41:43 +08:00
eezd ac81544e03 Propagate synchronization and plugin failures correctly 2026-10-20 12:58:41 +08:00
eezd 1e33f50c5e Block encoded unsafe links and revoked event credentials 2026-10-20 12:55:00 +08:00
eezd df064155c7 Preserve vault state on failed file operations 2026-10-20 12:46:55 +08:00
eezd 7e52d9a00b Fix note saves and drafts across asynchronous edits 2026-10-20 12:43:11 +08:00
eezd 8ce4a11b33 Add managed plugins with lifecycle cleanup and editor extensions 2026-10-20 11:53:29 +08:00
eezd 9fd7e2a948 Add built-in white and black themes 2026-10-20 10:26:49 +08:00
eezd 7f65162115 Add synced themes, color modes and custom CSS snippets 2026-10-20 10:06:58 +08:00
eezd 1562519f08 Add installable PWA shell with safe updates and offline status 2026-10-19 13:22:56 +08:00
eezd 64915a7b94 Add tab reordering, sidebar resize and collapse, and outline panel
- Drag tabs to reorder; context menu to close, close others, close right
- Resizable sidebar width (synced setting), collapsible with Mod+\
- Outline panel (Mod+Shift+O): right column on desktop, overlay on mobile
- Mobile: title opens quick switcher, swipe left closes the drawer,
  44px touch targets
2026-10-17 17:44:05 +08:00
eezd 91da6e116e Add mobile format toolbar, image picker and move-to dialog
- Markdown format commands shared by Ctrl+B/I/K and a toolbar above the
  soft keyboard on touch devices; bold and italic stack correctly
- Fit the app to the visual viewport so the keyboard does not cover the
  caret or the toolbar
- Insert images from the photo library or a file picker
- Move notes and folders with a folder picker from the file tree menu or
  the command palette
- Open the file tree menu with a long press on touch devices
2026-10-17 17:12:43 +08:00
eezd eb63b14c8e Add settings page with synced appearance and password change
- Store app settings as one JSON document on the server, merged per key and
  pushed to other devices; cache locally to avoid a flash on load
- Settings page groups appearance, account, shortcuts, shares, API tokens and
  trash; full screen with a section list on phones
- Font size and content width settings
- Change the login password, signing out other sessions
- Settings writes and password changes only accept a login session
2026-10-17 16:23:39 +08:00
eezd 5b326a70bf Lock out a source for 15 minutes after 30 failed passwords
Login and share password failures share one counter per source. A correct
share password does not reset it, so it cannot be used to keep guessing the
login password.
2026-10-17 15:51:40 +08:00
eezd 5ac01894e6 Add read-only sharing, API tokens and OpenAPI spec
- Share a note as a live read-only page at /s/{token} with optional password and expiry
- Share page renders with the shared parser (TOC, footnotes, math, Mermaid, code highlighting)
  and only serves images from the note's own .assets directory
- Shares follow renames made through the API or externally
- Manage shares and API tokens from the command palette and file tree
- Accept read/write API tokens as Bearer credentials; management endpoints require a session
- Serve a hand-written openapi.json, checked against the route table in tests
2026-10-17 15:21:47 +08:00
eezd 7b076346a4 Drop note encryption from README 2026-10-17 14:58:07 +08:00
eezd 3c98a6bbd9 Revert "Add encrypted note storage and keyring endpoints"
This reverts commit 35d3138c7d.
2026-10-17 14:56:23 +08:00
eezd b26c5aa693 Revert "Add client-side note encryption"
This reverts commit 5cf5a45682.
2026-10-17 14:56:23 +08:00
eezd 5cf5a45682 Add client-side note encryption
- WebCrypto keyring (PBKDF2 600k + AES-GCM master key) and per-note/per-image keys
- Encrypt/decrypt commands convert the note and its own images, deleting the originals
- Unlock, setup and change-password dialogs; manual lock; lock on page close
- Encrypted images are decrypted to blob URLs; pasted images are encrypted before upload
- Rewrite image links in the browser when renaming an encrypted note
- Skip local drafts for encrypted notes and confirm before closing with unsaved changes
- Show encrypted notes as locked with an explanation outside secure contexts
2026-10-17 14:51:08 +08:00