I've generally found the whole business of maintaining curricula vitae/résumés rather frustrating. When I want to add some details, I often feel like tinkering with
the format, or slimming down previous jobs. This is always a royal pain. The fundamental issue here is that a résumé is a classic example of where you want to
content from presentation—and not just to the extent made possible by CSS.
The best way, in my view, to do this is to store the content in XML format and the presentation details in
XSL. This means I can easily change the content of my résumé without accidentally messing up the
format, and vice versa.
I found the XML Résumé Library. Although I decided not to use that project, I did adopt its
DTD. I created my own XSL, which gives me complete control over formatting. For the HTML version of the résumé, I let
the browser perform the transformation on demand. If you "view source" on the HTML version, you'll just see the source XML. My XSL file is resume-html.xsl.
For the PDF version of the résumé, I generate the file offline using Apache FOP. This also involves XML transformation. The difference is that,
instead of transforming to HTML, it transforms to XSL-FO. The XSL-FO is then used to generate the final PDF file. My XSL
file for transforming to XSL-FO is resume-fo.xsl.