Có thể với một ít mã. Tôi sẽ xác định một liên kết mới như thế này:
#+BEGIN_SRC emacs-lisp
(org-add-link-type
"image-url"
(lambda (path)
(let ((img (expand-file-name
(concat (md5 path) "." (file-name-extension path))
temporary-file-directory)))
(if (file-exists-p img)
(find-file img)
(url-copy-file path img)
(find-file img)))))
#+END_SRC
Khi bạn nhấp vào nó, bạn sẽ nhận được một con mèo ở chế độ hình ảnh. Tôi đã không xác định chức năng xuất khẩu mặc dù. Ngoài ra, hình ảnh được tải xuống dưới dạng tempfile, có thể không thuận tiện cho bạn.
Sau đó sử dụng nó như thế này:
[[image-url:https://d1ra4hr810e003.cloudfront.net/media/27FB7F0C-9885-42A6-9E0C19C35242B5AC/0/D968A2D0-35B8-41C6-A94A0C5C5FCA0725/F0E9E3EC-8F99-4ED8-A40DADEAF7A011A5/dbe669e9-40be-51c9-a9a0-001b0e022be7/thul-IMG_2100.jpg]]
Sau đó, bạn có thể sử dụng hai chức năng này để phủ hoặc xóa hình ảnh:
(defun image-url-overlays ()
"Put image overlays on remote image urls."
(interactive)
(loop for image-url in (org-element-map (org-element-parse-buffer) 'link
(lambda (link)
(when (string= "image-url" (org-element-property :type link))
link)))
do
(let* ((path (org-element-property :path image-url))
(ov (make-overlay (org-element-property :begin image-url)
(org-element-property :end image-url)))
(img (create-image (expand-file-name
(concat (md5 path)
"."
(file-name-extension
path))
temporary-file-directory))))
(overlay-put ov 'display img)
(overlay-put ov 'image-url t))))
(defun image-url-clear-overlays ()
"Reove overlays on image-urls."
(interactive)
(require 'ov)
(ov-clear 'image-url))
Điều này tải xuống hình ảnh dưới dạng tempfile nếu nó không tồn tại, và sau đó đặt một lớp phủ trên liên kết.
org-mode
, phải không? Hình ảnh cục bộ có thể được nội tuyếnC-c C-x C-v
nhưng tôi không nghĩ rằng hình ảnh từ xa có thể (ít nhất là ra khỏi hộp).