Eric Zachte took Perl, Perl bindings for the Ploticus plotting library, devised his own special purpose plotting language, mixed it all up and out came EasyTimeline. The sample plots in the documentation are beautiful and apparently it's quite easy to add hyperlinks into the resulting images.
There are also Python bindings for Ploticus. A nifty programming languages class project would be to take one of the Python language toolkits and implement Zacthe's language or a different language design. One benefit is that you can readily see whether the dang translator/interpreter/compiler is doing the right thing.