diff options
Diffstat (limited to 'lisp/org/org-docview.el')
-rw-r--r-- | lisp/org/org-docview.el | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lisp/org/org-docview.el b/lisp/org/org-docview.el index be99ad99a69..72ccc46d62a 100644 --- a/lisp/org/org-docview.el +++ b/lisp/org/org-docview.el @@ -51,9 +51,22 @@ (org-autoload "doc-view" '(doc-view-goto-page)) -(org-add-link-type "docview" 'org-docview-open) +(org-add-link-type "docview" 'org-docview-open 'org-docview-export) (add-hook 'org-store-link-functions 'org-docview-store-link) +(defun org-docview-export (link description format) + "Export a docview link from Org files." + (let* ((path (when (string-match "\\(.+\\)::.+" link) + (match-string 1 link))) + (desc (or description link))) + (when (stringp path) + (setq path (org-link-escape (expand-file-name path))) + (cond + ((eq format 'html) (format "<a href=\"%s\">%s</a>" path desc)) + ((eq format 'latex) (format "\href{%s}{%s}" path desc)) + ((eq format 'ascii) (format "%s (%s)" desc path)) + (t path))))) + (defun org-docview-open (link) (when (string-match "\\(.*\\)::\\([0-9]+\\)$" link) (let* ((path (match-string 1 link)) |