Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Automatically create bibliography from bibtex in pandoc/markdown without inline citations

How can I automatically create a citations list from a bibtex file, preferably in markdown (more specifically, pandoc) format?

I'm in the process of building my personal, academic website. As most personal, academic websites do, I am including a page listing my publications. However, I really don't want to write every citation by hand, so I'm attempting to find an automated method of creating the citations from one or more bibtex files.

Ideally there would be a tool I could just hand a bibtex file containing my publications to and it would spit out markdown (I'm using pandoc + makefile to create the site). I am currently unaware of any such tool.

Further complicating my needs is the fact that a simple flat listing of publications is not sufficient. I need to be able to list different publications under different categories (peer reviewed and non peer reviewed at the very minimum). Though if a tool like I was wishing for above does exist, I could easily maintain multiple bibtex files and use some bash-fu to accomplish this.

like image 676
cledoux Avatar asked Nov 24 '12 21:11

cledoux


2 Answers

You can use pandoc's own citation support for this. Create a markdown file along the following lines:

# Peer-reviewed papers

1. [@me2001]
2. [@me2002]

# Non-peer-reviewed papers

1. [@me1999]
2. [@me1998]

where me1999 etc are the keys in your bibtex file. Then find or create a CSL file that formats the citations in the way you would like, and process with pandoc:

pandoc --bibliography mybiblio.bib --csl mycsl.csl -o citations.html -s citations.txt

Or you can add -t markdown and get a markdown version if you wish.

If you don't want to create the input markdown file by hand, you could probably write a script to generate it from your bibtex file, if it contains sufficient metadata to distinguish peer-reviewed from non-peer-reviewed papers.

like image 187
John MacFarlane Avatar answered Sep 26 '22 03:09

John MacFarlane


I wanted the same thing for the same reason (creating a website using Hakyll) and I found the "problem": the CSL file.

Pandoc, in fact, does this job perfectly and the solution provided by MacFarlane is correct, but it lacks explanation on the rule of the CSL file—it is what defines if you are going to have a numbered reference in the middle text with a list of publications in the end or not.

Julien Tanguy has created a CSL style that puts the publication simplied information from BibTeX in the place where the reference is cited, derived from Chicago style. Certainly you can use it (it is licensed under Creative Commons Attribution-Share Alike 3.0) but you can also create yours.

So, now (a long time after you've posted the question), I hope you have the complete answer.

like image 27
Guiraldelli Avatar answered Sep 23 '22 03:09

Guiraldelli