Add image support: paste, drag&drop, and clipboard files, stored in SQLite #5

Merged
Lemarkis merged 1 commit from feat/image-support into main 2026-09-10 09:18:17 +00:00
Owner

Ajoute le support des images dans les notes :

  • Collage d'une capture d'écran, glisser-déposer, ou copier-coller d'un fichier depuis l'Explorateur.
  • Stockage en BLOB dans une nouvelle table images (SQLite), jamais un fichier sur disque référencé par chemin.
  • Nettoyage automatique des images orphelines (ligne ![]() supprimée du contenu) et suppression en cascade quand la note elle-même est supprimée.
  • Correctif Tauri : désactivation du gestionnaire de drag&drop natif sur les fenêtres de note (sinon il intercepte le drop avant que le webview ne le voie).

Développé en TDD (voir les tests dans db.rs, markdown.test.ts, markdownFormatting.test.ts, images.test.ts).

Ajoute le support des images dans les notes : - Collage d'une capture d'écran, glisser-déposer, ou copier-coller d'un fichier depuis l'Explorateur. - Stockage en BLOB dans une nouvelle table `images` (SQLite), jamais un fichier sur disque référencé par chemin. - Nettoyage automatique des images orphelines (ligne `![]()` supprimée du contenu) et suppression en cascade quand la note elle-même est supprimée. - Correctif Tauri : désactivation du gestionnaire de drag&drop natif sur les fenêtres de note (sinon il intercepte le drop avant que le webview ne le voie). Développé en TDD (voir les tests dans db.rs, markdown.test.ts, markdownFormatting.test.ts, images.test.ts).
Add image support: paste, drag&drop, and clipboard files, stored in SQLite
All checks were successful
CI / frontend (pull_request) Successful in 25s
CI / backend (pull_request) Successful in 5m38s
a212111499
Images are stored as BLOBs in a new `images` table rather than as files on
disk, so the user can't manipulate the original. Notes reference them via a
`markit-image:<uuid>` marker in the Markdown source, hydrated to a data: URL
client-side over IPC. Orphaned images are pruned when their reference is
removed from a note's content, and cleaned up entirely when the note is
deleted.

Drag&drop required disabling Tauri's native drag-drop handler on note
windows, which otherwise intercepts OS file drops before the webview's own
HTML5 dragover/drop events ever fire.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XWJUtU9eXA7nWJAEHMzv9i
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Lemarkis/Mark-it!5
No description provided.