Introduce function to create links to attachments.
This patch introduces two new functions in org-attach.el, `org-attach-expand', and `org-attach-expand-link'. Both take a file name as an argument, assume that this file is an attachment of the current entry, and return the full path to this file or a "file:..." link to it, respectively. With these functions, it becomes very easy to use link abbreviations to create a new link type to attachments: After (setq org-link-abbrev-alist '(("att" . org-attach-expand-link))) links like [[att:file.txt]] will work.
This commit is contained in:
parent
c4e9626bf4
commit
413264882c
|
@ -1,5 +1,10 @@
|
|||
2008-11-05 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.el (org-link-abbrev-alist): Improve customization type.
|
||||
|
||||
* org-attach.el (org-attach-expand-link, org-attach-expand): New
|
||||
functions.
|
||||
|
||||
* org-agenda.el (org-agenda-get-progress): Renamed from
|
||||
`org-get-closed'. Implement searching for state changes as well.
|
||||
(org-agenda-log-mode-items): New option.
|
||||
|
|
|
@ -334,6 +334,17 @@ See `org-attach-open'."
|
|||
(interactive)
|
||||
(org-attach-open 'in-emacs))
|
||||
|
||||
(defun org-attach-expand (file)
|
||||
"Return the full path to the current entry's attachment file FILE.
|
||||
Basically, this adds the path to the attachment directory."
|
||||
(expand-file-name file (org-attach-dir)))
|
||||
|
||||
(defun org-attach-expand-link (file)
|
||||
"Return a file link pointing to the current entry's attachment file FILE.
|
||||
Basically, this adds the path to the attachment directory, and a \"file:\"
|
||||
prefix."
|
||||
(concat "file:" (org-attach-expand file)))
|
||||
|
||||
(provide 'org-attach)
|
||||
|
||||
;; arch-tag: fce93c2e-fe07-4fa3-a905-e10dcc7a6248
|
||||
|
|
|
@ -849,7 +849,12 @@ only argument to create the link, which should be returned as a string.
|
|||
|
||||
See the manual for examples."
|
||||
:group 'org-link
|
||||
:type 'alist)
|
||||
:type '(repeat
|
||||
(cons
|
||||
(string :tag "Protocol")
|
||||
(choice
|
||||
(string :tag "Format")
|
||||
(function)))))
|
||||
|
||||
(defcustom org-descriptive-links t
|
||||
"Non-nil means, hide link part and only show description of bracket links.
|
||||
|
@ -5957,6 +5962,7 @@ Possible values in the list of contexts are `table', `headline', and `item'."
|
|||
|
||||
(defun org-link-expand-abbrev (link)
|
||||
"Apply replacements as defined in `org-link-abbrev-alist."
|
||||
(debug)
|
||||
(if (string-match "^\\([a-zA-Z][-_a-zA-Z0-9]*\\)\\(::?\\(.*\\)\\)?$" link)
|
||||
(let* ((key (match-string 1 link))
|
||||
(as (or (assoc key org-link-abbrev-alist-local)
|
||||
|
|
Loading…
Reference in New Issue