mirror of
https://github.com/protesilaos/denote.git
synced 2026-09-10 07:16:20 -04:00
Make denote-link-ol-store work in org-capture as well
This affects the org-capture specifiers that create a link such as %a and %l. Thanks to jarofromel for bringing this matter to my attention in discussion 702: <https://github.com/protesilaos/denote/discussions/702>.
This commit is contained in:
parent
8112e65bc3
commit
d78ad3f74e
59
denote.el
59
denote.el
|
|
@ -6985,39 +6985,38 @@ create a new one."
|
|||
(format "%s::%s" file-text heading-text))
|
||||
|
||||
;;;###autoload
|
||||
(defun denote-link-ol-store (&optional interactive?)
|
||||
(defun denote-link-ol-store (&optional _interactive?)
|
||||
"Handler for `org-store-link' adding support for denote: links.
|
||||
Optional INTERACTIVE? is used by `org-store-link'.
|
||||
Optional INTERACTIVE? is used internally by `org-store-link'.
|
||||
|
||||
Also see the user option `denote-org-store-link-to-heading'."
|
||||
(when interactive?
|
||||
(when-let* ((file (buffer-file-name))
|
||||
((file-regular-p file))
|
||||
((denote-file-is-in-denote-directory-p file))
|
||||
((denote-file-has-denoted-filename-p file))
|
||||
(file-id (denote-retrieve-filename-identifier file))
|
||||
(description (denote-get-link-description file)))
|
||||
(let ((heading-links (and denote-org-store-link-to-heading
|
||||
(derived-mode-p 'org-mode)
|
||||
(denote--org-capture-link-specifiers-p)))
|
||||
(heading (denote-link-ol-get-heading)))
|
||||
(org-link-store-props
|
||||
:type "denote"
|
||||
:description (if (and heading-links heading)
|
||||
(denote-link-format-heading-description
|
||||
description
|
||||
heading)
|
||||
description)
|
||||
:link (cond
|
||||
((when-let* ((id (org-entry-get (point) "CUSTOM_ID")))
|
||||
(format "denote:%s::#%s" file-id id)))
|
||||
((and heading-links (eq denote-org-store-link-to-heading 'context) heading)
|
||||
(format "denote:%s::*%s" file-id heading))
|
||||
((and heading-links heading)
|
||||
(format "denote:%s::#%s" file-id (denote-link-ol-get-id)))
|
||||
(t
|
||||
(concat "denote:" file-id))))
|
||||
org-store-link-plist))))
|
||||
(when-let* ((file (buffer-file-name))
|
||||
((file-regular-p file))
|
||||
((denote-file-is-in-denote-directory-p file))
|
||||
((denote-file-has-denoted-filename-p file))
|
||||
(file-id (denote-retrieve-filename-identifier file))
|
||||
(description (denote-get-link-description file)))
|
||||
(let ((heading-links (and denote-org-store-link-to-heading
|
||||
(derived-mode-p 'org-mode)
|
||||
(denote--org-capture-link-specifiers-p)))
|
||||
(heading (denote-link-ol-get-heading)))
|
||||
(org-link-store-props
|
||||
:type "denote"
|
||||
:description (if (and heading-links heading)
|
||||
(denote-link-format-heading-description
|
||||
description
|
||||
heading)
|
||||
description)
|
||||
:link (cond
|
||||
((when-let* ((id (org-entry-get (point) "CUSTOM_ID")))
|
||||
(format "denote:%s::#%s" file-id id)))
|
||||
((and heading-links (eq denote-org-store-link-to-heading 'context) heading)
|
||||
(format "denote:%s::*%s" file-id heading))
|
||||
((and heading-links heading)
|
||||
(format "denote:%s::#%s" file-id (denote-link-ol-get-id)))
|
||||
(t
|
||||
(concat "denote:" file-id))))
|
||||
org-store-link-plist)))
|
||||
|
||||
(defun denote-link--ol-export-get-relative-html (path)
|
||||
"Return relative PATH for Org export purposes.
|
||||
|
|
|
|||
Loading…
Reference in a new issue