Function: org-cite-biblatex-export-citation
org-cite-biblatex-export-citation is a byte-compiled function defined
in oc-biblatex.el.gz.
Signature
(org-cite-biblatex-export-citation CITATION STYLE _ INFO)
Documentation
Export CITATION object.
STYLE is the citation style, as a pair of either strings or nil. INFO is the export state, as a property list.
Source Code
;; Defined in /usr/src/emacs/lisp/org/oc-biblatex.el.gz
(defun org-cite-biblatex-export-citation (citation style _ info)
"Export CITATION object.
STYLE is the citation style, as a pair of either strings or nil.
INFO is the export state, as a property list."
(pcase-let* ((`(,name . ,variant) (org-cite-biblatex--expand-shortcuts style))
(candidates nil)
(style-match-flag nil))
(catch :match
;; Walk `org-cite-biblatex-styles' and prioritize matching
;; candidates. At the end of the process, the optimal candidate
;; should appear in front of CANDIDATES.
(dolist (style org-cite-biblatex-styles)
(pcase style
;; A matching style-variant pair trumps anything else.
;; Return it.
(`(,(pred (equal name)) ,(pred (equal variant)) . ,_)
(throw :match (setq candidates (list style))))
;; nil-nil style-variant is the fallback value. Consider it
;; only if nothing else matches.
(`(nil nil . ,_)
(unless candidates (push style candidates)))
;; A matching style with default variant trumps a matching
;; variant without the adequate style. Ensure the former
;; appears first in the list.
(`(,(pred (equal name)) nil . ,_)
(push style candidates)
(setq style-match-flag t))
(`(nil ,(pred (equal variant)) . ,_)
(unless style-match-flag (push style candidates)))
;; Discard anything else.
(_ nil))))
(apply
#'org-cite-biblatex--command citation info
(pcase (seq-elt candidates 0) ;; `seq-first' is not available in Emacs 26.
(`(,_ ,_ . ,command-parameters) command-parameters)
('nil
(user-error
"Missing default style or variant in `org-cite-biblatex-styles'"))
(other
(user-error "Invalid entry %S in `org-cite-biblatex-styles'" other))))))