mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-19 23:40:43 +00:00
org-export: Add a function to resolve id or custom-id links
* contrib/lisp/org-export.el (org-export-resolve-id-link): New function.
This commit is contained in:
parent
95e71f5705
commit
c12246931f
|
@ -2224,6 +2224,10 @@ Return the parsed tree."
|
||||||
;; (i.e. links with "fuzzy" as type) within the parsed tree, and
|
;; (i.e. links with "fuzzy" as type) within the parsed tree, and
|
||||||
;; returns an appropriate unique identifier when found, or nil.
|
;; returns an appropriate unique identifier when found, or nil.
|
||||||
|
|
||||||
|
;; `org-export-resolve-id-link' returns the first headline with
|
||||||
|
;; specified id or custom-id in parse tree, or nil when none was
|
||||||
|
;; found.
|
||||||
|
|
||||||
;; `org-export-resolve-coderef' associates a reference to a line
|
;; `org-export-resolve-coderef' associates a reference to a line
|
||||||
;; number in the element it belongs, or returns the reference itself
|
;; number in the element it belongs, or returns the reference itself
|
||||||
;; when the element isn't numbered.
|
;; when the element isn't numbered.
|
||||||
|
@ -2307,6 +2311,22 @@ Assume LINK type is \"fuzzy\"."
|
||||||
;; No match with a common ancestor: try the full parse-tree.
|
;; No match with a common ancestor: try the full parse-tree.
|
||||||
(funcall find-headline path (plist-get info :parse-tree)))))))
|
(funcall find-headline path (plist-get info :parse-tree)))))))
|
||||||
|
|
||||||
|
(defun org-export-resolve-id-link (link info)
|
||||||
|
"Return headline referenced as LINK destination.
|
||||||
|
|
||||||
|
INFO is a plist used as a communication channel.
|
||||||
|
|
||||||
|
Return value can be an headline element or nil. Assume LINK type
|
||||||
|
is either \"id\" or \"custom-id\"."
|
||||||
|
(let ((id (org-element-get-property :path link)))
|
||||||
|
(org-element-map
|
||||||
|
(plist-get info :parse-tree) 'headline
|
||||||
|
(lambda (headline local)
|
||||||
|
(when (or (string= (org-element-get-property :id headline) id)
|
||||||
|
(string= (org-element-get-property :custom-id headline) id))
|
||||||
|
headline))
|
||||||
|
info 'first-match)))
|
||||||
|
|
||||||
(defun org-export-resolve-coderef (ref info)
|
(defun org-export-resolve-coderef (ref info)
|
||||||
"Resolve a code reference REF.
|
"Resolve a code reference REF.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue