Browse Source

New `org-bibtex-headline-format-function'

* lisp/org-bibtex.el (org-bibtex-write): Make this function read the
headline format from the newly created variable
`org-bibtex-headline-format-function' instead of systematically using
the entry title.
(org-bibtex-headline-format-function): Create this variable to hold
a function of one argument, the entry alist, and return the string to
be inserted as headline.  The default value replicates the current
behavior of returning the entry title.

Eric Danan 4 years ago
2 changed files with 14 additions and 1 deletions
  1. 2 0
  2. 12 1

+ 2 - 0

@@ -82,6 +82,8 @@ Where clue > 0
+*** New variable : ~org-bibtex-headline-format-function~
+This allow to use a different title than entry title.
 *** Horizontal rules are no longer ignored in LaTeX table math mode
 ** Removed options

+ 12 - 1

@@ -237,6 +237,17 @@ a missing title field."
   :version "24.1"
   :type 'boolean)
+(defcustom org-bibtex-headline-format-function
+  (lambda (entry) (cdr (assq :title entry)))
+  "Function returning the headline text for `org-bibtex-write'.
+It should take a single argument, the bibtex entry (an alist as
+returned by `org-bibtex-read').  The default value simply returns
+the entry title."
+  :group 'org-bibtex
+  :version "25.2"
+  :package-version '(Org . "9.1")
+  :type 'function)
 (defcustom org-bibtex-export-arbitrary-fields nil
   "When converting to bibtex allow fields not defined in `org-bibtex-fields'.
 This only has effect if `org-bibtex-prefix' is defined, so as to
@@ -678,7 +689,7 @@ Return the number of saved entries."
 	 (val (lambda (field) (cdr (assoc field entry))))
 	 (togtag (lambda (tag) (org-toggle-tag tag 'on))))
-    (insert (funcall val :title))
+    (insert (funcall org-bibtex-headline-format-function entry))
     (org-bibtex-put "TITLE" (funcall val :title))
     (org-bibtex-put org-bibtex-type-property-name
 		    (downcase (funcall val :type)))