Add an "yt" =org-link= type
This commit is contained in:
parent
57fefabd4c
commit
dc3e729fa2
36
README.org
36
README.org
@ -2583,6 +2583,42 @@ variables in order to export the =info-org-link= types in this document to
|
|||||||
:description path)))))
|
:description path)))))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+caption[Define an =org-link= type for =YouTube=]:
|
||||||
|
#+caption: Define an =org-link= type for =YouTube=.
|
||||||
|
#+name: lst:define-org-yt-link-type
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(with-eval-after-load 'ol
|
||||||
|
;; https://bitspook.in/blog/extending-org-mode-to-handle-youtube-links/
|
||||||
|
(org-link-set-parameters "yt"
|
||||||
|
:follow #'org-yt-open
|
||||||
|
:export #'org-yt-export)
|
||||||
|
|
||||||
|
(defun org-yt-open (path prefix)
|
||||||
|
"Open an \"yt\" link."
|
||||||
|
(let* ((url (format "https:%s" path))
|
||||||
|
(display-buffer-alist
|
||||||
|
`((,shell-command-buffer-name-async . (display-buffer-no-window)))))
|
||||||
|
(if (and prefix (executable-find "mpv"))
|
||||||
|
(browse-url url)
|
||||||
|
(async-shell-command (format "mpv \"%s\"" url))
|
||||||
|
(message "Launched mpv with \"%s\"" url))))
|
||||||
|
|
||||||
|
(defun org-yt-export (path desc backend _)
|
||||||
|
"Export an \"yt\" link."
|
||||||
|
(pcase backend
|
||||||
|
(`html
|
||||||
|
(let* ((video-id (cadar (url-parse-query-string path)))
|
||||||
|
(url (if (string-empty-p video-id)
|
||||||
|
path
|
||||||
|
(format "//youtube.com/embed/%s" video-id))))
|
||||||
|
(format
|
||||||
|
(concat "<iframe width=\"560\" height=\"315\" src=\"%s\" "
|
||||||
|
"title=\"%s\" frameborder=\"0\" allowfullscreen></iframe>")
|
||||||
|
url desc)))
|
||||||
|
(`latex (format "\\href{https:%s}{%s}" path desc))
|
||||||
|
(_ path))))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
#+caption[Patch =ol-info=]:
|
#+caption[Patch =ol-info=]:
|
||||||
#+caption: Patch =ol-info=.
|
#+caption: Patch =ol-info=.
|
||||||
#+name: lst:patch-org-info-link-type
|
#+name: lst:patch-org-info-link-type
|
||||||
|
Loading…
Reference in New Issue
Block a user