Nicolas Goaziou writes:

> Hello,
>
> Thibault Marin <thibault.ma...@gmx.com> writes:
>
>> I would like to use ox-bibtex to export a bibliography to html with
>> multiple bibliography files, as follows:
>>
>> #+BIBLIOGRAPHY: bibtex_1.bib,bibtex_2.bib plain option:-d option:-noabstract 
>> limit:t
>>
>> This works with latex export but not with html (I get a "Executing
>> bibtex2html failed").  It appears that bibtex2html can only process a
>> single file.
>>
>> I am attaching a patch which allows me to use multiple files with html
>> export.  It creates a combined bibliography file and call bibtex2html on
>> it.  I am not sure this is the best way to address this, so any
>> suggestion would be welcome.
>>
>> Does this look like something that could be merged?
>
> Apparently no objection was raised, so I think this can be merged. Some
> minor comments below.
>
>> +        (let ((files (org-split-string file ",")))
>
> I think `split-string' is sufficient here.
>
>> +          (when (< 1 (length files))
>> +            (let ((combined-bib-file
>> +                   (concat
>> +                    (file-name-sans-extension
>> +                     (file-name-nondirectory
>> +                      (buffer-file-name))) "-combined.bib")))
>> +              (with-temp-file combined-bib-file
>> +                (dolist (bib files)
>> +                  (insert-file-contents
>> +                   (if (equal (file-name-extension bib) "bib")
>> +                       bib
>> +                     (concat bib ".bib")
>> +                     )
>> +                   )
>> +                  )
>> +                )
>> +              (setq file combined-bib-file)
>> +              )
>> +            )
>> +          )
>
> There should be no dangling parenthesis in Lisp.
>
> Could you send an updated patch?
>
> Thank you.
>
>
> Regards,

Thanks for the review, here is an updated patch.

Best,

thibault
>From cb07ff936587a456f1e6599d216efe9463431d3f Mon Sep 17 00:00:00 2001
From: thibault <thibault.ma...@gmx.com>
Date: Tue, 6 Sep 2016 22:42:39 -0500
Subject: [PATCH] * contrib/lisp/ox-bibtex.el (org-bibtex-process-bib-files):
 Add support for multiple bibliography files with html export.

Combine comma-separated bibliography files into a single one and process
it using bibtex2html.  This matches the behavior already present for
latex export.
---
 contrib/lisp/ox-bibtex.el | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/contrib/lisp/ox-bibtex.el b/contrib/lisp/ox-bibtex.el
index 56dec38..b46cb76 100644
--- a/contrib/lisp/ox-bibtex.el
+++ b/contrib/lisp/ox-bibtex.el
@@ -191,13 +191,27 @@ Return new parse tree."
 		(file (org-bibtex-get-file keyword))
 		temp-file
 		out-file)
+	    (let ((files (split-string file ",")))
+	      (when (< 1 (length files))
+		(let ((combined-bib-file
+		       (concat
+			(file-name-sans-extension
+			 (file-name-nondirectory
+			  (buffer-file-name))) "-combined.bib")))
+		  (with-temp-file combined-bib-file
+		    (dolist (bib files)
+		      (insert-file-contents
+		       (if (equal (file-name-extension bib) "bib")
+			   bib
+			 (concat bib ".bib")))))
+		  (setq file combined-bib-file))))
 	    ;; Test if filename is given with .bib-extension and strip
     	    ;; it off. Filenames with another extensions will be
 	    ;; untouched and will finally rise an error in bibtex2html.
 	    (setq file (if (equal (file-name-extension file) "bib")
 			   (file-name-sans-extension file) file))
-	    ;; Outpufiles of bibtex2html will be put into current working directory
-	    ;; so define a variable for this.
+	    ;; Output files of bibtex2html will be put into current
+	    ;; working directory so define a variable for this.
 	    (setq out-file (file-name-sans-extension
 			    (file-name-nondirectory file)))
 	    ;; limit is set: collect citations throughout the document
-- 
2.8.1

Reply via email to