Ist es möglich, Bilder aus dem Web mit seiner URL einzufügen?

11

Ist es möglich, Bilder direkt aus dem Web mit der URL einzufügen org-mode? dh Kann ich so etwas in den Emacs-Puffer einfügen, damit es sich im Link in das Bild einer Katze ändert image mode?

[[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]] 

Es macht es nur zu einem anklickbaren Link in meinen aktuellen Einstellungen.

stacko
quelle
1
Du redest doch org-mode, oder? Lokale Bilder können mit Inline-Bildern versehen werden, C-c C-x C-vaber ich glaube nicht, dass Remote- Bilder dies können (zumindest sofort ).
JeanPierre
@ JeanPierre Ja, Remote-Bilder in org-mode.
Stacko

Antworten:

9

Es ist mit einem kleinen Code möglich. Ich würde einen neuen Link wie folgt definieren:

#+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

Wenn Sie darauf klicken, sollte sich eine Katze im Bildmodus befinden. Exportfunktionen habe ich allerdings nicht definiert. Das Bild wird auch als Tempfile heruntergeladen, was für Sie möglicherweise praktisch ist oder nicht.

Dann benutze es so:
[[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]]

Anschließend können Sie mit diesen beiden Funktionen ein Bild überlagern oder entfernen:

(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))

Dadurch wird das Bild als Tempfile heruntergeladen, falls es nicht vorhanden ist, und der Link wird dann überlagert.

John Kitchin
quelle
Schreiben Sie Ihren eigenen Code, um ein Problem zu lösen? Das ist Betrug , Mann.
Tianxiang Xiong
3

Soweit ich weiß, nicht im Org-Puffer.

Wenn Sie jedoch in HTML exportieren, werden Links zu Bildern in Bilder konvertiert .

Wenn die Beschreibung ein Dateiname oder eine URL ist, die auf ein Bild verweist, wird das Bild beim HTML-Export (siehe HTML-Export) als anklickbare Schaltfläche eingefügt. Wenn überhaupt keine Beschreibung vorhanden ist und der Link auf ein Bild verweist, wird dieses Bild in die exportierte HTML-Datei eingefügt.

Tianxiang Xiong
quelle