The Gigatrees distribution includes two sample batch files ( sample-html.bat and dnatest.bat ). The first, builds a complete family tree and can be loaded by opening sample.html. The second, uses one-hundred sample DNA matches. Once you've run the application, you can sign-in to the User Dashboard to track your progress.

September 4, 2022

Gigatrees 5.4.4

  • For Database Users: Updated router.php to prevent blocking on non-critical PHP warnings and added hooks for including user code before logging visitors (for skipping self and crawlers) and before logging "Page Not Found" (for handing redirects).
  • For Database Users: Updated pdodriver.php to update the logVisitor() function to add NULL checks, and removed the unused logAction() function.
  • Gallery: Updated plugins/gigatrees/gigatrees.css to fix gallery layout.
  • Themes: Updated plugins/theme.a/plugin.xml to fix sidebar on mobile devices.
  • Themes: Updated plugins/theme.b/pushmenu.js to prevent other dropdown menus from interfering with the sidebar.
  • General: Modified the sample configuration files to demonstrate both built-in themes
  • General: Added "-t" to the command line parameters for setting the website title via a batch file. If your website title includes a space (most do) you must use quotes, i.e. -t "My Family Tree".
  • Translations: Added a French language plugin ( plugins/ ) for testing handling of translations. The plugin is a sample only, and not deployment ready.
  • Translations: Added user defined event descriptions to the translation module. You will be warned when no translation was found. This will allow you to add <Translations> if necessary.
  • DNA: Modified the default total chromosome length for MyHeritage from 7000cM to 7092cM based on my own results in matches myself 7078.4cM at 99.8%.
  • DNA: Added <HideMissingMatches> to <DNA> configuration to hide matches having no shared segments (0cM).
  • DNA: Fix setting probability for matches having no shared segments (0cM). Updated all DNA probability matricies in the includes folder to allow a small probability of no shared segments for relationships of 3rd cousin and beyond.
  • DNA: Do not use DNA matches with a combined segment lengths less than 5.0 for determining proven parental associations.
  • DNA: Fix setting the relationship text in the DNA survey report when their is a generation collapse - the collapse generation was being added twice.
  • DNA: Added the <SharedCMProject> option to <DNA> for exporting the DNA survey report in a format recognized by The Shared cM Project.

Aug 25, 2022

Gigatrees 5.4.3

  • Database users: fixed a bug in the Router that failed to retrieve the page from the database whenever the page's path contained the name of the root path.
  • Database users: updated the Router by adding hooks for including user code before logging visitors and missing pages. These are useful for handling redirects and logging of web crawlers.
  • Modified the Gigatrees plugin (plugin/gigatrees/gigatrees.css) to remove the style preventing the gallery image thumbnails from being resized and adjusted DNA chart node height (when not hovering over the node).
  • Updated the Theme B plugin (plugin/theme.b/pushmenu.js) to prevent dropdown menus from interfering with the sidebar.
  • Added French, German and Dutch language plugins ( plugins/ ). The plugins are probably not deployment ready - review them before use.
  • Added user defined event description checking to the <Translations> verifications. Non-English users will be alerted if a new translation is needed.
  • Added <MinTagSize> to blog posts that supercedes the global setting, which effectively allows ignoring small hashtags only on those posts that embed HTML, PHP or JavaScript.
  • Added reporting DNA testing company counts for display in the User Dashboard.
  • Changed default <GalleryThumbnailSize> to 150.
  • Changed DNA Chart node width for depths greater than 5.

Aug 10, 2022

Gigatrees 5.4.2

  • Page locking was not initialized properly, so unlocked pages could become inadvertently locked.
  • Resurrected the website Dashboard. The dashboard includes a number of views for examining different aspects of your build history. This can be useful in tracking progress. You will need your application id to signin. Your application id is shown at the top and bottom of your build log. A description can be found at The User Dashboard.
  • Enabled reporting anonymous statistics to the Gigatrees server after execution of the program. The reported data does not include personally identifiable information, and can be viewed, downloaded or deleted at any time using the User Dashboard.
  • Added and defaulted <Maintenance> (SendAnonymousStats) to true
  • Changed the default for <DataValidation> <ShowEmptyResults> to true
  • Changed the default for <ProfilePages> <DetermineEthnicity> to false

July 29, 2022

Gigatrees 5.4.1

  • Re-enabled version checking. When the program runs, it makes a call to the home server to check if you are using the latest version and will output the response in the console and build log.
  • Fixed a bug when adding a single census table by name instead of by id. The record lookup was failing.
  • Fixed crash occuring when the configured sole census person was missing.
  • Fix a bug grouping location names in heatmap info windows.
  • Fix a critical error if no shared DNA length was provided.
  • Removed adding spouses to the list of Most Recent Common Ancestors when creating DNA tables and charts. The father is never proven to be an ancestor until one of his ancestors is also.
  • In article links to footnote numbers, don't show page unless using source title. Add ref page to source citation template and remove extra period from ibid template.
  • To create an embedded reference to a person's pedigree chart, you can set the item field to "chart", i.e. {ref:P1#chart}
  • Mark the background for all DNA ancestors of the <HomePerson> in the pedigree charts in green.
  • Added DNA indicator counts to pedigree charts. Gigatrees keeps track of all independent lines of ascent that pass through/include an individual/ancestor in a DNA chart, and keeps a running total. This total is what is displayed in the pedigree charts. See The Strange Case of the Traveling Barber for a detailed example.
  • Change "Persons Born After One of Their Parent's Buried" to "Persons Buried Before Their Child Was Born"
  • Updated gigatrees and lang.eng plugin
  • When profile pages are disabled, individual links point to pedigree charts instead of profile pages.
  • Added a new page type and configuration item for Ancestor Maps. Ancestor maps show the distribution of all events associated with a configured persons ancestors.
  • Added <ShowMigrationPath> option for <AncestorLists>.
  • Added <UseFolders> option to <Main> and is defaulted to true.
  • Added <GalleryLocked> and <HideUnusedGalleryCollectionTags> options to <Gallery>.
  • Added <HideAllIndividuals>, <HideAncestors>, <KeepAncestors>, <KeepDescendants>, <HideDescendants>, <KeepPersons>, <HidePersonsLivingBeforeDate> to the <GedcomRecords> option for creating website with a narrow focus.
  • Changed 23andMe total chromosome length to 7440, this number was based on actual data.
  • Fix metadata feed link for stand alone blogs.

May 1, 2022

Gigatrees 5.4.0

  • Updated the default DNA Probability Matrix. This should result in more accurate probability measurements and parental association reliability assessments.
  • Added spouses to the list of Most Recent Common Ancestors when creating DNA tables and charts.
  • Fixed a bug in the DNA Suggested Relationship calculator.
  • Updated the parental association reliability assessment for DNA matches.
  • Replaced the probability matrix (dna-sci-matrix.csv) with new ones (dna-orogen-w-matrix.csv and dna-orogen-uw-matrix.csv) based on Brit Nicholson's Orogen Relationship Predictor. (See:

April 21, 2022

Gigatrees 5.3.9

  • Added the <Locked> option for <BlogPosts>. When locked, visitors must sign in to view the post. The content of the post also will not appear in the feed. You must set the <SkipFeed> option on the post to true to prevent the title from appearing in your feed.
  • I forgot that there were internal links to the default plugin images hardcoded, so when I renamed the plugin in the previous release, these no longer resolved (fixed).
  • Moved the <HomePerson> option from <PedigreeCharts> to <Main>.
  • Gigatrees will now default to using the <HomePerson> for ancestor and collection lists, census tables and origin maps, when no other id has been configured and when the pages have not been disabled. This should help users who have not otherwise setup these reports, by providing a default view.
  • Fix adding census menu item when no ancestors of the persons in the census list have valid census events.

April 14, 2022

Gigatrees 5.3.8

  • Added theme support using plugins.
  • modified ALL existing plugins (moving most of them to plugin/gigatrees) to support themes.
  • Modified a number of HTML element classes including the default menu dropdown classes to support themes.
  • Added new internal side placeholders: %Extension% and %AppURL%.
  • Added new HTML Extensions : <::>, <==>, <:id:> and <:class:>.
  • Changed how related page thumbnails are displayed.
  • I forgot that there are internal links to the default plugin images hardcoded. When I renamed the plugin, these will no longer resolve. You can work around this by creating the following path: /plugins/styles/imgs, and then copying the /plugins/gigatrees/imgs files to it.

March 31, 2022

Gigatrees 5.3.7

  • Huge improvements in capturing event record data (including ages and census relationships), source and source reference metadata and details.
  • We now convert Ancestry RESI records when referenced by census source records to CENS records.
  • Fixed a bug in overriding source categories.
  • Improved source template handling.
  • Added support for adding source metadata using name:value pairs in @SOUR.NOTE record fields that begin with a colon.
  • Fixed hotlinking of media images missing thumbnails in a source reference.
  • Fixed hotlinking duplicate images to the same source reference.
  • Fixed missing age column on some timelines.
  • Added <MaxCitationQuoteLength> to <Sources> - it also appears under <Blog>.
  • Added support for Ancestry 2022.01: @_MTTAG (new tag record), @_MTTAG.NAME (tag name), @INDI._MTTAG (tag rrecord reference), @FAM._SREL (spousal relationship), @INDI._WLNK (web link), @INDI._WLNK.TITL (web link title), @OBJE.PLAC (image location), @OBJE._DSCR (image description), @OBJE._CREA (image creations date/time), @INDI.[fact].SOUR@.DATA.NOTE (source reference/page note), @SOUR.PUBL.DATE (source publication date), @SOUR.PUBL.PLAC (source publication place), @REPO.CALN (repository call number). Note: no image file paths are provided by Ancestry in the multimedia records or references (OBJE), so they are discarded. In addition, some of Ancestry's new records type are for their internal use only (such as ids, serial numbers, and formatting options) or are simply chaff. The new tags skipped are @OBJE._META, @OBJE._CLON, @OBJE._ORIG, @OBJE._MSER and @_MTTAG.RIN.
  • For Ancestry trees only, allow semicolons in URLs. I did not yet want to change this for all vendors for fear it might break other links.
  • Fixed a CRASH that occured when a census list was configured for an individual for which no census years were found. - this was introduced into the previous release.
  • Fixed a CRASH that occured when an EventType was defined for a vendor specific post-living event, and when there was not already a post living event processed or for which its reliability assessment was less (a mouthful, I know). I'm pretty sure no one actually uses <EventTypes>, which may be useful in determining more accurate birth year estimates by specifying which vendor specific events occur when a persons is still living or is deceased. - this was introduced last year sometime.

March 23, 2022

Gigatrees 5.3.6

  • Fix HideUnusedSources when census and source pages only.
  • Fixed blogging pagination, which I inadvertantly messed up in ver 5.3.3.
  • Added preserving final configured census year in table, even if it would otherwise not apply.
  • Added Enumeration District line into source reference popup (when available) - Ancestry only.
  • Added <nudge> for a half-height blank line.
  • Replaced the HTML extension <url> with <href>.
  • Replaced the HTML extension <:url:> with <:new:>.
  • Updated bootstrap-tooltip-handler.js bootstrap plugin for better placement of popovers.
  • Updated styles.css in the styles plugin to support popovers.
  • Cleanup Census table popups for trees.

March 22, 2022

Gigatrees 5.3.5

  • If DNA Tester is not found when processing <DNA> then remove them from the <Relative> list. This can happen when the DNA Tester hwas added <HideIds>.
  • Updated the Twitter plugin so that the card type can be easily overwritten by redefining $TWITTER_CARD$.
  • Updated the Twitter plugin to add the creator field. It is set by default to $TWITTER_NAME$.
  • Added <Living> flag to the DNA <Relative> option, which will mark the DNA match as living.

March 19, 2022

Gigatrees 5.3.4

  • Fixed the heatmaps when the data contained an apostrophe, I accidently broke this in one of the previous two builds (my bad)
  • Updated twitter plugin by adding the $TWITTER_NAME$ placeholder, which you can redefine in your configuration to add your @name
  • Added plugin with the $GTAG$ placeholder, which you can redefine in your configuration
  • Fixed missing metadata
  • Fixed blog cover image title

March 18, 2022

Gigatrees 5.3.3

  • Fixed several broken links in the previous build (my bad).
  • Added HideRecordIds to prevent id from being display except when necessary (i.e. source links).
  • Updated metadata plugin to include a placeholder for the robots so it can be modified in your configuration.
  • Updated default.header plugin to include placeholders for links to the site logo and avatar.
  • Seperated the styles plugin into styles, chart.styles and signin plugins so that you can load only those needed with getting all of them.
  • Added default.plugins plugin and removed loading plugins.xml from the sample-html.bat and sample-db.bat files
  • Added default.lang and removed loading lang.xml from the sample-html.bat and sample-db.bat files
  • Added mobile.grid plugin to provide a mobile friendly table replacement.
  • Added dynamic.font.size plugin for use in blogs to make them more mobile friendly.
  • Add support for comments on blog posts
  • Updated the blog.css to support comments
  • Gigatrees now replace placeholder in <StyleOverrides> and <ScriptOverrides> in blog posts.

March 16, 2022

Gigatrees 5.3.2

  • Most of the default configuration files have been modified, so if you are upgrading, you will want do a comparison to see what has changed. Several of the plugins have been updated as well:
  • Renamed <WebsiteURL> to <Domain> and a trailing slash is no longer allowed.
  • Added <RootPath> to allow smooth installation into subfolders (i.e.
  • Modified default.header plugin to modify site banner
  • Modified default.footer plugin to add %PageScripts%
  • Modified sidebar.width plugin to use placeholder
  • Modified styles.css in the styles plugin to support changes to default.header plugin
  • Modified blog.css in the styles plugin to support author cards
  • Added <Author> to <Blog> to support simple author cards.
  • Added <ScriptOverride> to <BlogPost> to support page specific JavaScript.
  • Added <HideIndividuals> and <HideUnusedSources> to <Misc>
  • Several new site placeholders were added or modified:
  • Added %BlogPage% to get a link to the blog's index page. This especially useful when using a landing page with an id of "index".
  • Added %RootPath% for accessing the relative root path from any subfolder.
  • Modified how %SiteBanner% is displayed
  • Added a title heading to all blog index pages
  • Removed rel=nofollow from <url> and <fs> HTML extensions - if you need to restore this behavior, you can overwrite the internal placeholders by redefining them.
  • Databases now use a the RootPath for all folder prefixes instead of ../ and ./
  • Stop using a folder prefix if HTML page is in the same folder as the one directing to
  • Removed the documentation from the distribution since it is now online here.

March 13, 2022

Gigatrees 5.3.1

  • Gigatrees now supports replaceing placeholders in the blog keywords. This will allow for creating reusable keyword lists for use in multiple blog posts.
  • Fixed #gallery option for embedded references.

February 22, 2022

Gigatrees 5.3.0

  • Gigatrees now creates internal links that are relative to a website's root folder. This will allow pages to be viewed the same for both HTTP and HTTPS protocol schemes. The <WebsitePath> option was removed as it is now redundant.
  • Added a <ZlibCompression> option to the database. Enabling this option will compress the page's content when saved inside the database. When doing so for my 367 MB database (19,000+ files generated), it reduced its size to a paltry 57 MB. The router was updated to handle the decompression and checksum verification automatically. Page load speeds will likely be adversely affected.
  • The router.php was also updated to supply a permissable default robots.txt file when one is not otherwise present. This was done for SEO compatability.
  • The blog was modified so that you can create a different landing page by setting a blog post id/filename to 'index'. When doing so, the blog index will be moved to 'blog[.html]'. The <HomePage> option was removed as it is now redundant.
  • Moved the <GalleryFile> option out of <Gallery> and into <Media>, renaming it <MediaFile>
  • Page Redirects for blog posts have been fixed. If you are changing the filename of a post, you can now use embedded references to automatically link to the new post.
  • The stylesheets ( blog.css and styles.css ) have been updated
  • The default.header plugin was modified to include the Navbar wrapper. Gigatrees no longer autogenerates the wrapper. This will give you more control over placement and headings.
  • The sample configuration files were moved from the includes folder to the config folder.
  • The default plugins.xml file was updated to include the redirect plugin by default.
  • New technical specifications and distribution files were added for The GEDCOM 5 Parser ( The GEDCOM 5 Parser (TGP) ) and VGedX ( The Gigatrees GEDCOM 5 Validator (VGedX) ). The Gigatrees distribution no longer includes these.

February 4, 2022

Gigatrees 5.2.8

  • Added universal placeholder: %WebsiteURL% (same as %Domain%).
  • Modified universal placeholder: %PageFilename% (was %PagePath%, but undocumented).
  • Added substitution of placeholders in notes and blog posts.
  • Updated font awesome plugin to add the HTML extension: <fa>
  • Added flickr plugin to add the HTML extension: <flickr>
  • Added imgur plugin to add the HTML extension: <imgur>
  • Added youtube plugin to add the HTML extension: <youtube>
  • Added chartjs plugin to support the charting library (
  • Updated the DNA survey report file format.
  • Changed <SurveyReporting> option to boolean.

January 29, 2022

Gigatrees 5.2.7

  • Good intentions aside and due to a general lack of interest in the apps, I've moved the Gigatrees server to a free hosting service (InfinityFree) so now the only costs are domain name registration. IF does not permit APIs, so I've gone back and removed the update check and reporting DNA data to the server. I left the documentation intact.

December 30, 2021

Gigatrees 5.2.6

  • When Gigatrees processes the DNA probability matricies, it ignores the 1st column (centimorgans) and begins reading at the 2nd column (percent). I've modified the matricies to remove the centimorgan column completely and updated the application accordingly.
  • Added a new probability matrix loosely based on Brit Nicholson's Relationship Predictor (dna-sci-matrix.csv). It seems to be more accurate for the few borderline cases I have in my shared match data, so I would recommend it above the others. See

December 20, 2021

Gigatrees 5.2.5

  • Restored version update check.
  • Restored server reporting to the <SurveyReporting> option.

December 18, 2021

Gigatrees 5.2.4

  • Restored <SurveyReporting> option, but now it simply prints a report (dna.txt) to the output folder.
  • Added <TotalChromosomeLength> to the DNA Relative option so that each match can be overridden if necessary.
  • Added default Total Chromosome Lengths based on the testing company listed.

December 13, 2021

Gigatrees 5.2.3

  • When embedded refs are linked to skipped persons, we no longer link to their non-existant pages.
  • Allow overriding <Gallery> <GalleryAlbums> <Album> <Title> thumbnails i.e. <Thumb>. We now overwrite the previous defined thumbnail, which can be useful when creating multiple trees with different gallery subsets.
  • Commentaries appear in ancestor lists inside popups. These were embedding a popup inside another popup causing problems. This was fixed.
  • Updated the supported HTML extensions to include those used by BlüeBox. This should allow easy content movement between the two applications. The following extensions were added: <lt>, <x>, <sp>, <break>, <blank>, <href>, <size>, <knockout>, <btable>. The documentation has been updated with appropriate examples.
  • Added additional HTML extensions to support quick links using FamilySearch ids: <fs>, <:fs:>, </fs>. The documentation has been updated with an appropriate example.
  • Added the <DnaProbabilityFile> option which allows you to override the built-in DNA probability matrix to use alternate values. Two sample files are provided. The first of these is identical to the built-in matrix and is based on the one provided by Leah Larkin in her article, "The DNA Geek: The Limits of Predicting Relationships Using DNA" ( The second contains the matrix for The Shared cM Project Version 4.0 (March 2020) (

December 6, 2021

Gigatrees 5.2.2

  • Fixed displaying estmated birth years (again).
  • When converting GEDCOM and XML data into HTML, Gigatrees must convert end-of-line characters (EOL) to HTML break characters (i.e. <br/>). Some HTML tags however, already have implied breaks built into them such that when embedding HTML into GEDCOM or XML data, it can result that extra unexpected blank lines appear on the page. Users may also, for readability reasons, insert extra blank lines into plain text. To prevent multiple blank lines from occuring, Gigatrees removes these extra blank lines when found, as well as single EOL characters surrounding the problematic HTML tags. In addition it protects script blocks (i.e. ... ) when converting EOL characters to HTML breaks. Gigatrees also uses the Misc.CleanLineBreaks and BlogPosts.CleanLineBreaks options to enable/disable this coversion. The changes made to this build include preserving the EOL when inserting HTML breaks, which makes viewing HTML source more readable, protection was added for HTML preformatted text (i.e. <pre>...</pre>) tags so that HTML break characters are not inserted, and the Misc.CleanLineBreaks and BlogPosts.CleanLineBreaks options were removed as they are no longer needed.
  • Trailing whitespace in GEDCOM data is no longer discarded.
  • Leading tabs are converted to HTML non-breaking space characters (i.e.  ) to preserve indented text. XML data must still use HTML paragraph formatting (i.e. <p>...</p>).
  • Offline location maps now use the location description when no Google API key is configured and no coords exist.
  • Added checking and warnings for duplicate placeholders.
  • Source citations now use the full source title, no the abbreviated title, which is still used on the Source index page.
  • The Source index page displays plus signs (+) under #Claims when the source is referenced via an embedded reference. Previously, this only was shown when the #Claims was zero (0), now it will be display for all source when appropriate.
  • The Census tables was not displaying the dash (-) in some cases when skipped.
  • Added Gallery.GalleryThumbnailSize option
  • Restored offline embedded location maps when no Google API key is configured using coords.
  • Fixed privatization of Gallery photos.
  • When hiding living persons, removed name claims from source claim lists.
  • When skipping one or more census years for an individual, fixed removing the person from the census table when no other census claims are found.
  • Fixed displaying estmated birth years.
  • Fixed sorting photos and photo groups in the Gallery.
  • Fixed handling HTML extensions in collection descriptions.
  • Added displaying the GEDCOM remove hidden record extension (i.e. _HIDE) data value in the build log for additional cases.
  • The Source index page displays plus signs (+) under #Claims when the source is referenced via an embedded reference. Fixed showing it when the #Claims is zero (0).
  • Added displaying the GEDCOM remove hidden record extension (i.e. _HIDE) data value in the build log.
  • Changed the color of source GEDCOM ids.
  • Removed all source indicies. Reverted to using source GEDCOM ids.
  • Fixed displaying date ranges (oops!).
  • Removed 'Dead before burial" from the Validation table (duh!).
  • Allow clearing of API keys by setting the Locations options to blank. You may want to do this in a config file loaded after the keys were already set in the config file already loaded.
  • Fixed displaying of spouses names on the Timeline pages (yikes!)
  • Add support for alternate config names to match those used by BlüeBox.
  • Changed the command line option '-bulk' to '-load'
  • Rootsweb allows setting death dates to "Deceased". This date phrase will now be cleared as not-useful.