Function: org-beamer--frame-level
org-beamer--frame-level is a byte-compiled function defined in
ox-beamer.el.gz.
Signature
(org-beamer--frame-level HEADLINE INFO)
Documentation
Return frame level in subtree containing HEADLINE.
INFO is a plist used as a communication channel.
Source Code
;; Defined in /usr/src/emacs/lisp/org/ox-beamer.el.gz
(defun org-beamer--frame-level (headline info)
"Return frame level in subtree containing HEADLINE.
INFO is a plist used as a communication channel."
(or
;; 1. Look for "frame" environment in parents, starting from the
;; farthest.
(catch 'exit
(dolist (parent (nreverse (org-element-lineage headline)))
(let ((env (org-element-property :BEAMER_ENV parent)))
(when (and env (member-ignore-case env '("frame" "fullframe")))
(throw 'exit (org-export-get-relative-level parent info))))))
;; 2. Look for "frame" environment in HEADLINE.
(let ((env (org-element-property :BEAMER_ENV headline)))
(and env (member-ignore-case env '("frame" "fullframe"))
(org-export-get-relative-level headline info)))
;; 3. Look for "frame" environment in sub-tree.
(org-element-map headline 'headline
(lambda (hl)
(let ((env (org-element-property :BEAMER_ENV hl)))
(when (and env (member-ignore-case env '("frame" "fullframe")))
(org-export-get-relative-level hl info))))
info 'first-match)
;; 4. No "frame" environment in tree: use default value.
(plist-get info :headline-levels)))