Mungkin dengan sedikit kode. Saya akan mendefinisikan tautan baru seperti ini:
#+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
Ketika Anda mengkliknya, Anda harus mendapatkan kucing dalam mode gambar. Saya tidak mendefinisikan fungsi ekspor. Juga, gambar diunduh sebagai tempfile, yang mungkin atau mungkin tidak nyaman bagi Anda.
Kemudian gunakan seperti ini:
[[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]]
Kemudian Anda dapat menggunakan dua fungsi ini untuk overlay atau menghapus gambar:
(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))
Ini mengunduh gambar sebagai tempfile jika tidak ada, dan kemudian meletakkan overlay pada tautan.
org-mode
, bukan? Gambar lokal dapat digarisbawahi denganC-c C-x C-v
tetapi saya tidak berpikir yang jauh dapat (setidaknya di luar kotak).