Function: org-bibtex-write

org-bibtex-write is an interactive and byte-compiled function defined in ol-bibtex.el.gz.

Signature

(org-bibtex-write &optional NOINDENT UPDATE-HEADING)

Documentation

Insert a heading built from the first element of org-bibtex-entries.

When optional argument NOINDENT is non-nil, do not indent the properties drawer. If UPDATE-HEADING is non-nil, add data to the headline of the entry at point.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/org/ol-bibtex.el.gz
(defun org-bibtex-write (&optional noindent update-heading)
  "Insert a heading built from the first element of `org-bibtex-entries'.
When optional argument NOINDENT is non-nil, do not indent the properties
drawer.  If UPDATE-HEADING is non-nil, add data to the headline of the
entry at point."
  (interactive)
  (unless org-bibtex-entries
    (error "No entries in `org-bibtex-entries'"))
  (let* ((entry (pop org-bibtex-entries))
	 (org-special-properties nil) ; avoids errors with `org-entry-put'
	 (val (lambda (field) (cdr (assoc field entry))))
	 (togtag (lambda (tag) (org-toggle-tag tag 'on)))
         (insert-raw (not update-heading)))
    (unless update-heading
      (org-insert-heading)
      (insert (funcall org-bibtex-headline-format-function entry))
      (insert "\n:PROPERTIES:\n"))
    (org-bibtex-put "TITLE" (funcall val :title) insert-raw)
    (org-bibtex-put org-bibtex-type-property-name
		    (downcase (funcall val :type))
                    insert-raw)
    (dolist (pair entry)
      (pcase (car pair)
	(:title    nil)
	(:type     nil)
	(:key      (org-bibtex-put org-bibtex-key-property (cdr pair) insert-raw))
	(:keywords (if org-bibtex-tags-are-keywords
		       (dolist (kw (split-string (cdr pair) ", *"))
			 (funcall
			  togtag
			  (replace-regexp-in-string
			   "[^[:alnum:]_@#%]" ""
			   (replace-regexp-in-string "[ \t]+" "_" kw))))
		     (org-bibtex-put (car pair) (cdr pair) insert-raw)))
	(_ (org-bibtex-put (car pair) (cdr pair) insert-raw))))
    (unless update-heading
      (insert ":END:\n"))
    (mapc togtag org-bibtex-tags)
    (unless noindent
      (org-indent-region
       (save-excursion (org-back-to-heading t) (point))
       (point)))))