Function: org-export-get-environment
org-export-get-environment is an autoloaded and byte-compiled function
defined in ox.el.gz.
Signature
(org-export-get-environment &optional BACKEND SUBTREEP EXT-PLIST)
Documentation
Collect export options from the current buffer.
Optional argument BACKEND is an export back-end, as returned by
org-export-create-backend.
When optional argument SUBTREEP is non-nil, assume the export is done against the current sub-tree.
Third optional argument EXT-PLIST is a property list with external parameters overriding Org default settings, but still inferior to file-local settings.
Source Code
;; Defined in /usr/src/emacs/lisp/org/ox.el.gz
;;; The Communication Channel
;;
;; During export process, every function has access to a number of
;; properties. They are of two types:
;;
;; 1. Environment options are collected once at the very beginning of
;; the process, out of the original buffer and configuration.
;; Collecting them is handled by `org-export-get-environment'
;; function.
;;
;; Most environment options are defined through the
;; `org-export-options-alist' variable.
;;
;; 2. Tree properties are extracted directly from the parsed tree,
;; just before export, by `org-export--collect-tree-properties'.
;;;; Environment Options
;;
;; Environment options encompass all parameters defined outside the
;; scope of the parsed data. They come from five sources, in
;; increasing precedence order:
;;
;; - Global variables,
;; - Buffer's attributes,
;; - Options keyword symbols,
;; - Buffer keywords,
;; - Subtree properties.
;;
;; The central internal function with regards to environment options
;; is `org-export-get-environment'. It updates global variables with
;; "#+BIND:" keywords, then retrieve and prioritize properties from
;; the different sources.
;;
;; The internal functions doing the retrieval are:
;; `org-export--get-global-options',
;; `org-export--get-buffer-attributes',
;; `org-export--parse-option-keyword',
;; `org-export--get-subtree-options' and
;; `org-export--get-inbuffer-options'
;;
;; Also, `org-export--list-bound-variables' collects bound variables
;; along with their value in order to set them as buffer local
;; variables later in the process.
;;;###autoload
(defun org-export-get-environment (&optional backend subtreep ext-plist)
"Collect export options from the current buffer.
Optional argument BACKEND is an export back-end, as returned by
`org-export-create-backend'.
When optional argument SUBTREEP is non-nil, assume the export is
done against the current sub-tree.
Third optional argument EXT-PLIST is a property list with
external parameters overriding Org default settings, but still
inferior to file-local settings."
;; First install #+BIND variables since these must be set before
;; global options are read.
(dolist (pair (org-export--list-bound-variables))
(set (make-local-variable (car pair)) (nth 1 pair)))
;; Get and prioritize export options...
(org-combine-plists
;; ... from global variables...
(org-export--get-global-options backend)
;; ... from an external property list...
ext-plist
;; ... from in-buffer settings...
(org-export--get-inbuffer-options backend)
;; ... and from subtree, when appropriate.
(and subtreep (org-export--get-subtree-options backend))))