diff --git a/modules/lang/org/autoload/contrib-dragndrop.el b/modules/lang/org/autoload/contrib-dragndrop.el index 618790cee..1adc86278 100644 --- a/modules/lang/org/autoload/contrib-dragndrop.el +++ b/modules/lang/org/autoload/contrib-dragndrop.el @@ -10,3 +10,13 @@ (rassq-delete-all '+org-dragndrop-download-dnd-fn (copy-alist dnd-protocol-alist)))) (dnd-handle-one-url nil action uri)))) + +;;;###autoload +(defun +org-dragndrop-image-fn (protocol link _description) + "Return the image associated with the current attachment." + (let ((file (expand-file-name link org-attach-id-dir))) + (when (and (file-exists-p file) (image-type-from-file-name file)) + (with-temp-buffer + (insert-file-contents file) + (goto-char (point-min)) + (buffer-substring-no-properties (point) (point-max)))))) diff --git a/modules/lang/org/contrib/dragndrop.el b/modules/lang/org/contrib/dragndrop.el index 84e2671e1..e845332aa 100644 --- a/modules/lang/org/contrib/dragndrop.el +++ b/modules/lang/org/contrib/dragndrop.el @@ -17,8 +17,7 @@ (after! org ;; A shorter link to attachments (+org-def-link "download" org-attach-id-dir) - (setf (alist-get "download" org-link-abbrev-alist nil nil #'equal) - (abbreviate-file-name org-attach-id-dir))) + (org-link-set-parameters "download" :image-data-fun #'+org-dragndrop-image-fn)) :config (setq org-download-image-dir org-attach-id-dir org-download-link-format "[[download:%s]]\n"