Made with...
The problem
I receive a lot of questions from people wanting to know how I made this site. Do I use a commercial/freeware product or is each page made by hand? As you can see on the Content Types page over 85% of this site is generated, so the 'made by hand' pages are few (this page is one of them).
First of all, I do use a genealogical program to keep my genelogical records in: Cumberland Family Tree. Most important about a genealogy program is the ability to export data to GEDCOM, the genealogical data format standard. GEDCOM files can be exchanged with other genealogists and can be read by other programs, including self made scripts!
The utilities which make websites from GEDCOM didn't provide me with the flexibility I wanted. So inspired by tools like Gene Stark's GEDCOM2HTML and Tom de Neef's KSTableau I made my own tools to build this Coret Genealogy site!
My solution
The tools are made with the (platfom-independant) scripting language Perl. The 'SiteGenerator' script consists of several modules which I can run from the command-line. There are three 'general' modules which form the basis for the 'SiteGenerator' script:
- The GEDCOM module reads the GEDCOM data file in memory (in a Perl hash), after this all the other scripts can access my genealogical data. An additional feature I build in is a public/private switch, which can manipulate the loaded GEDCOM to protect the privacy of individuals.
- The Template module takes care of the main look of the site, so each page which is made by one of the scripts justs inserts the title, subtitle, navigation and text part. By doing this the site gets the consequent smart look.
- The Bi-language module makes (together with the Template module) that the whole site is in two languages: Dutch and English. This is made possible for instance by using a word file to localize text parts.
When you have all of your genealogical data available the next part is how to present is, I hope this site gives you an impression of all the possibilities! I have scripts which make the family tree, the pedigree and of course the individual pages. Also, to help you find what you want, several indexes are made: surnames, individuals, sources, places, and events. Of course, not only HTML pages can be made: some functionality on the Coret Genealogy site is made 'on-the-fly' using Javascript 'databases' (for example the pedigree of each individual). Also text files are created, for example an index file which is indexed by the GENDEX WWW Genealogical Index.
It's all just a specific presentation of genealogical data!
The genealogical data isn't my only data source. The following data sources (meta-data) are used as well in the scripts:
- Of all the photographs I have I made a description file, stating the name, data, source and which persons are on the photograph. The Photo script reads all and for each photo a HTML pages is made, and of course put in an index file (per person). This data is also used when the individual pages are made; if one of more photo's are available for an individual a link is made on his/her page to these photo's.
- I have a lot of old documents transcripted. Just like the photo's these transcripts have a description file which are used by the Transcripts script to present the transcript and to link individual with the transcript.
- To 'spice up' the individual pages I have some 'context' info available. Several data files like 'events in a particular year', 'birth day lists of famous people', 'when ruled which monarch in The Netherlands or president in the USA' are accessed based on the birth date of the person to add the 'Context Info' part on the individuals page.
- To have an idea how large families are and where they live I present addresslists. These lists are obtained from online whitepages and put in text files. The Addresses script parses these address lists and presents them in a consequent way, makes indexes and for some countries shows in a graph the distribution of the people on a map of the country.
All of the Perl scripts are custom, tailor-made scripts to do what I want.
As the scripts aren't yet generic I won't publish them, may be in the future...
One of the Perl modules I use is Paul Johnsons Gedcom module. For this module I have written some additions which you can view and download here.
