Function: org-odt--enumerate
org-odt--enumerate is a byte-compiled function defined in
ox-odt.el.gz.
Signature
(org-odt--enumerate ELEMENT INFO &optional PREDICATE N)
Source Code
;; Defined in /usr/src/emacs/lisp/org/ox-odt.el.gz
;;;; Link
;;;; Links :: Label references
(defun org-odt--enumerate (element info &optional predicate n)
(when predicate (cl-assert (funcall predicate element info)))
(let* ((--numbered-parent-headline-at-<=-n
(lambda (element n info)
(cl-loop for x in (org-element-lineage element)
thereis (and (org-element-type-p x 'headline)
(<= (org-export-get-relative-level x info) n)
(org-export-numbered-headline-p x info)
x))))
(--enumerate
(lambda (element scope info &optional predicate)
(let ((counter 0))
(org-element-map (or scope (plist-get info :parse-tree))
(org-element-type element)
(lambda (el)
(and (or (not predicate) (funcall predicate el info))
(cl-incf counter)
(eq element el)
counter))
info 'first-match))))
(scope (funcall --numbered-parent-headline-at-<=-n
element
(or n (plist-get info :odt-display-outline-level))
info))
(ordinal (funcall --enumerate element scope info predicate))
(tag
(concat
;; Section number.
(and scope
(mapconcat 'number-to-string
(org-export-get-headline-number scope info) "."))
;; Separator.
(and scope ".")
;; Ordinal.
(number-to-string ordinal))))
tag))