I am dabbling in software development with the GRAMPS (Genealogical Research and Analysis Management Programming System) project. It is a genealogical database building program that is available for Linux.
I got involved with the developer group after struggling to make my genealogy site look great. The markup techniques were outdated or wrong and nothing had an ‘id’ or ‘class’. After recommending the change to the devs, they let me know that it wasn’t a top priority and recommended that if I wanted to improve the output, I would have to do it myself. This would involve working with Python and also looking stupid asking dumb questions about version control and compiling GRAMPS myself to check my work. With a little time and patience (as well as being unemployed for three months in Nashville with just my wife for company) I put myself to the task.
I have been updating the ‘Narrative Web’ plugin, written in Python, that exports your genealogical data into a web site. Mostly I just corrected and updated the XHTML markup that was present amidst the Python. I did hack up the code a little so that the navigation could be styled to indicate the active page or section.
My primary focus was to make the sites more accessible to CSS. In the process I created a few style themes to be distributed with the application. I am quite proud of them and excited to hear feedback from the user community once GRAMPS 3.0 is released. Following is a few screen shots of the site output as it was and the four primary styles that I developed so far.
GRAMPS 2.2 Narrative Web Plugin Output
‘Modern’
‘Tranquil’
GRAMPS 3.0 Narrative Web Plugin Output
‘Basic – Ash’
Basic comes in a variety of color schemes and is based on the original ‘Modern’ style. I hate using the word ‘modern’ outside of discussions of philosophy or fine art. The general public in the U.S. is convinced that it means ‘contemporary’. No doubt this is thanks to decades of marketing professionals trying to make their products sound impressive.
‘Nebraska’
I named this after my home state. It was my original stylesheet for the new markup. For that reason a lot of id and class solutions in the markup came out of challenges created by this design. I wanted this design to look fresh and inviting while being very easy to read.
‘Mainz’
Named so for Gutenberg’s birthplace, this design was created to show off the potential of the new markup. It’s a bit repetitious of me, but for some reason the vision of the website as a sheet of paper is very appealing. I started this one based on the name of one of the original GRAMPS styles: Certificate. The original style didn’t really look like a certificate, but this one does.
Default Print Style
This is probably the style that will be the most overlooked. With XHTML + CSS there is the potential for the browser to automatically switch stylesheets based on the media of representation. You can define one stylesheet as ‘screen’ and another as ‘print’ (there’s actually quite few different defined mediums according to the W3C, including ‘mobile’ and ‘projection’). GRAMPS is the first project where I could form a strong argument for using this feature to its full potential. Now anytime someone prints a page from a Narrative Web site, the output will be well designed for print with an emphasis on efficiency and legibility.
There’s still more work to do, but I wanted to get the word out on this great update to GRAMPS that’s just around the corner. Along with my relatively minor contributions, the other developers have been working very hard to make 3.0 an impressive and powerful update. If you are interested in trying it out, do keep in mind that in the open source world ‘.0’ means ‘submit final work to users and fix a lot of reported bugs’. So, if you are looking for a perfect application, I recommend waiting for GRAMPS 3.1. 😉