emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Eric Danan <eric.danan@u-cergy.fr>
To: Eric Danan <eric.danan@u-cergy.fr>, emacs-orgmode@gnu.org
Subject: Re: [PATCH] org-bibtex.el: Make headline format costomizable
Date: Wed, 7 Dec 2016 22:20:39 +0100	[thread overview]
Message-ID: <CAMBH+Ra7Oi8RTkTKhpS+jc0=TMbAYBYOez20Awt60hQCKBQxuw@mail.gmail.com> (raw)
In-Reply-To: <87inr1cujf.fsf@nicolasgoaziou.fr>

Here it is, hope I did everything correctly.


* 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-foramt-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.

TINYCHANGE
---
 etc/ORG-NEWS       |  2 ++
 lisp/org-bibtex.el | 14 +++++++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 78f28cbe..056443ac 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -84,6 +84,8 @@ Where clue > 0

 *** Horizontal rules are no longer ignored in LaTeX table math mode

+*** Org-Bibtex
+**** New variable : ~org-bibtex-headline-format-function~
 ** Removed options

 *** ~org-agenda-repeating-timestamp-show-all~ is removed.
diff --git a/lisp/org-bibtex.el b/lisp/org-bibtex.el
index db5d97b3..3dabc68f 100644
--- a/lisp/org-bibtex.el
+++ b/lisp/org-bibtex.el
@@ -237,6 +237,18 @@ (defcustom org-bibtex-treat-headline-as-title t
   :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.1"
+  :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 +690,7 @@ (defun org-bibtex-write ()
      (val (lambda (field) (cdr (assoc field entry))))
      (togtag (lambda (tag) (org-toggle-tag tag 'on))))
     (org-insert-heading)
-    (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)))
-- 
2.8.3

On Sat, Dec 3, 2016 at 8:59 AM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:
> Hello,
>
> Eric Danan <eric.danan@u-cergy.fr> writes:
>
>> When adding an org-bibtex entry with `org-bibtex-write' (or any
>> command relying on it), the headline is the title. The patch below
>> simply makes the headline customizable through a new variable.
>
> Thank you.
>
>> If you find it worth to incorporate this into org-bibtex I should
>> probably add a dosctring for the new variable
>
> Yes, please. Also, an entry in ORG-NEWS is welcome.
>
>> `org-bibtex-headline-format' and I would also have a few questions:
>> 1. Should I name this variable differently?
>
> Indeed. It should indicate it represents a function:
> `org-bibltex-headline-format-function' is better, IMO, since a "format"
> could be a format string.
>
>> 2. Should I use `defcustom' instead of `defvar'?
>
> Correct. Mind the :version and :package-version keywords.
>
>> 3. Should I move the `defvar' / `defcustom' at the beginning of the file?
>
> Yes.
>
>> 4. In the default value of the variable should I make use of the `val'
>> function that is let-bound inside `org-bibtex-write'?
>
> I think the default value is fine. Another option is to create a new
> `org-bibtex-headline-default' function and bound the variable to that.
>
>> +(defvar org-bibtex-headline-format
>> +  (lambda (entry)
>> +    (cdr (assoc :title entry))))
>
> Nitpick
>
>   `assoc' -> `assq'
>
> Regards,
>
> --
> Nicolas Goaziou

  reply	other threads:[~2016-12-07 21:22 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-24 21:22 [PATCH] org-bibtex.el: Make headline format costomizable Eric Danan
2016-12-03  7:59 ` Nicolas Goaziou
2016-12-07 21:20   ` Eric Danan [this message]
2016-12-09 20:48     ` Nicolas Goaziou
2016-12-09 22:11       ` Eric Danan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAMBH+Ra7Oi8RTkTKhpS+jc0=TMbAYBYOez20Awt60hQCKBQxuw@mail.gmail.com' \
    --to=eric.danan@u-cergy.fr \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).