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!):
- Adobe Portable Document Format files: .pdf
- PostScript files: .ps
- Compressed PostScript files: .ps.gz
- DeVice Independent files: .dvi
(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.