PUBlications LISTer (PubList)

Introduction

PubList it's a little PHP script usefull for keeping the list of your publications in your personal web page up to date. If you're reading this, chances are you already noticed that creating the list of your publication for the first time is more fun than keeping it current. Therefore, I've hacked together this simple script to make this task a bit easier.

Features

The main function this script implements, called PubList(), can be called from any point inside your personal web page. As a result, you'll get a standard HTML "unnumbered list" with all the papers found in the folder passed as argument, using an ordering of your choosing.
This function essentially parses the content of that folder, looking for BiBTeX files (those endind in .bib), and adding an entry in the publication list for every BiBTeX file it founds. For instance, if you place a file called AIJ.bib in that folder, you'll get an entry in the publication list showing the information contained in that BiBTeX file (such as authors, title of the paper, etc.). Note that the BiBTeX file must contain only the information of a single article.
Later, if you wish to make a paper available for download, all you need to do is to add all its electronic versions you may posse to that folder, with the same name (but different extensions). For instance, continuing with the previous example, suppose you have at hand both the .ps and .pdf version of that AI Journal article. Then, just adding  the files AIJ.ps and AIJ.pdf to the folder will automatically create the corresponding download links.

In case you wonder, the current version of the script recognizes the following extensions (which are all case sensitive!):
(other extension can be easily added, contact me or, even better, hack the source code yourself!)

Regarding the available ordering in which the publications appear, we can either specify recent_last, which orders your publications in chronological order, or recent_first, which orders them in reverse chronological order.

Instalation

The installation is quite straightforward: you need to put all the papers you want to list in a given folder (following the naming conventions mentioned above), then put this PHP script in a place accessible to the web server (for instance, in your own "public_html" folder), and finally add the following HTML code in the precise location you want the list of publications to appear:

<?php include('publist.php'); PubList("papers", "recent_first"); ?>

In this example, the first part tells the web server to process the source code of the script, while the second part is the call to the PHP function that does the magic (in this case, it will list all the papers it founds in the "papers" folder, ordering them in reverse chronological order). Recall that you may have to change the extension of the web page from .html to .php to make it work, depending on how your web server is configured.

Finally, note that you do not need to specify any formatting information while invoking this function, since having the list rendered in standard HTML makes it quite easy to modify its appearance using a simple CSS. For instance, you can check how it looks under the CSS I'm using it in my personal web page here.

Caveats

This script is confirmed to work with the way I've formatted my own BiBTeX database. It may or may not work with other alternative (yet also valid) ways of structuring a BiBTeX database. You can either adapt your own BiBTeX syntax to what I use, or, better yet, extend this script to handle other BiBTeX formats.

Also note that its intended target is a list of scientific publications, so for the time being only INPROCEEDINGS and ARTICLE entries are recognized and processed (then again, it's quite easy to extend this script to accept say BOOKS or UNPUBLISHED entries).

Download

The last version of the script is available for download here. This script is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. Simply put, you can do almost anything you want with it, except turning it into non-free software ;)

Finally, a self contained example, useful as an starting point is also available for download here. Just expand this compressed file in a given folder and then point your browser to it (if nothing happens, double check the permissions in the said folder, you may need to enable access for "others").

History

This script emerged after taking a through look at a similar script devised by Diego Martinez. His script, though accomplishing its intended task quite well, did not managed to scratch a certain itch I was having at the time (as Eric S. Raymond would put it). Thus, this little piece of free software was borne.

Valid HTML 4.01! Valid CSS!