Bibliography Page with jekyll-scholar

2 minute read

Introduction

Any scholar should feature a list of his own publications on his resume page. Fortunately, there is a wonderful jekyll extension by inukshuk, called jekyll-scholar. With this extension, it becomes super-easy to generate a publication list page from a BibTeX file with virtually any style you already know or can imagine. Unfortunately, jekyll-scholar is not on the list of jekyll extensions supported by GitHub pages. In this post, I’ll describe how I used the extension to generate a static publications page from a BibTeX file and then pushed that page to GitHub Pages in the end - not really the efficient jekyll way, but still effective. For this blog, I assume you already have a jekyll page in place and synchronize it with GitHub pages.

Include & Configure jekyll-scholar

The first step is to include and configure the jekyll scholar extension in your page. The most up-to-date way is to follow inukshuk’s README on GitHub. Little outdated, but more step-by-step instructions are available from this post on Stefan Lanke’s tech blog. Basically, you put your BibTeX file in a certain directory, where jekyll-scholar can find it, you define the style to be used for generating individual bibliography entries by choosing (or even authoring) a citation style language (CSL) definition from a huuuuge list of available style definitions, e.g. IEEE, ACM, Science, Nature, and you define in which directory results should go on the generated site. Once configured, you’ll have a page listing all your publications, preferably grouped by years and ordered by author names.

Extract Publications List to Static Page

Let’s assume that you configured jekyll-scholar to generate a bibliography under _site/pubs/index.html and that you also have a static page ready to be filled with a publication list under _pages/publications.html. First go to the generated bibliography HTML document and locate the <ol> element including all generated bibliography entries. Copy the whole element and simply paste it into the static page. Done.

Conclusion

The downside of this approach is obvious - whenever something changes, e.g. you add a new reference to your BibTeX file, you have to do the manual extraction by copying and pasting the <ol> element again. Of course, it would be much more convenient, if one could just use the built-in facilities from jekyll. However, this is not possible, until GitHub pages will include jekyll-scholar into their portfolio of officially allowed extensions. This is not the case for now.