URLを使用してWebから画像を挿入することはできますか?


11

URLを使用してWebから直接画像を挿入することはできorg-modeますか?つまり、このようなものをemacsのバッファに貼り付けて、リンク内の猫の画像に変更でき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]] 

現在の設定ではクリック可能なリンクにしています。


1
あなたorg-modeはについて話していますよね?ローカル画像はインライン化できますC-c C-x C-vが、リモート画像は(少なくとも箱から出して)インライン化できるとは思いません。
JeanPierre

@JeanPierreはい、のリモート画像org-mode
stacko

回答:


9

少しのコードで可能です。私はこのような新しいリンクを定義します:

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

クリックすると、画像モードの猫が表示されます。ただし、エクスポート関数は定義していません。また、イメージは一時ファイルとしてダウンロードされるので、便利な場合とそうでない場合があります。

次に、次のように使用します。
[[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]]

次に、これらの2つの関数を使用して、画像をオーバーレイまたは削除できます。

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

これにより、画像が存在しない場合は一時ファイルとしてダウンロードされ、リンクにオーバーレイが配置されます。


問題を解決するために独自のコードを書いていますか?それは不正行為です。
Tianxiang Xiong

3

私の知る限り、組織バッファー自体の中ではありません。

ただし、HTMLにエクスポートする場合、画像へのリンクは画像に変換されます

説明がファイル名または画像を指すURLである場合、HTMLエクスポート(HTMLエクスポートを参照)は、クリック可能なボタンとして画像をインライン化します。説明がまったくなく、リンクが画像を指している場合、その画像はエクスポートされたHTMLファイルにインライン化されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.