All Projects → nigelhorne → gedcom

nigelhorne / gedcom

Licence: GPL-2.0 License
Gedcom utility program

Programming Languages

perl
6916 projects

Projects that are alternatives of or similar to gedcom

GEDKeeper
GEDKeeper - program for work with personal genealogical database
Stars: ✭ 78 (+457.14%)
Mutual labels:  genealogy, gedcom, family, family-history, gedcom-files
ged2site
Create a family tree website from a Gedcom file
Stars: ✭ 25 (+78.57%)
Mutual labels:  genealogy, perl5, gedcom, perl-script
open-history-data
Поиск людей из прошлого
Stars: ✭ 19 (+35.71%)
Mutual labels:  genealogy, gedcom
Gedcom.pm
Gedcom - a Perl module to manipulate Gedcom genealogy files
Stars: ✭ 23 (+64.29%)
Mutual labels:  genealogy, gedcom
topola-viewer
Topola Genealogy Viewer – interactive genealogy visualization
Stars: ✭ 116 (+728.57%)
Mutual labels:  genealogy, gedcom
GeneGenie.Gedcom
A .Net Standard library for loading, saving, working with and analysing family trees stored in the GEDCOM format.
Stars: ✭ 37 (+164.29%)
Mutual labels:  genealogy, gedcom
topola
Topola – online genealogy visualization
Stars: ✭ 57 (+307.14%)
Mutual labels:  genealogy, gedcom
gedcom
👪 A Go library and CLI tools for encoding, decoding, traversing, merging, comparing, querying and publishing GEDCOM files.
Stars: ✭ 55 (+292.86%)
Mutual labels:  gedcom, gedcom-files
p5-type-tiny
Perl 5 distribution Type-Tiny; see homepage for downloads and documentation.
Stars: ✭ 48 (+242.86%)
Mutual labels:  perl5
Birthday-gift
Android app to give a person as a birthday gift
Stars: ✭ 13 (-7.14%)
Mutual labels:  birthday
GenealogyTreeInGit
Convert family trees from gedcom format to list of git commands that can be executed to build a family git repository
Stars: ✭ 15 (+7.14%)
Mutual labels:  genealogy
whichpm
Locates installed Perl modules.
Stars: ✭ 20 (+42.86%)
Mutual labels:  perl5
Slovo
Искони бѣ Слово - already in production at https://слово.бг
Stars: ✭ 17 (+21.43%)
Mutual labels:  perl5
zusam
Private groups to share messages, photos, videos, links with friends and family.
Stars: ✭ 79 (+464.29%)
Mutual labels:  family
backend
Laravel 8 backend for a genealogy website.
Stars: ✭ 82 (+485.71%)
Mutual labels:  genealogy
birthday-keeper
一个生日管理APP, UI风格模仿的系统闹钟, 可以添加, 编辑, 删除生日以及本地推送提醒, 项目截图见README.
Stars: ✭ 27 (+92.86%)
Mutual labels:  birthday
api
Central API for Prisma
Stars: ✭ 45 (+221.43%)
Mutual labels:  family
webtrees-fancy-research-links
Fancy Research Links Module for webtrees
Stars: ✭ 20 (+42.86%)
Mutual labels:  genealogy
Fb Automated Birthday Wisher
Automatically wishes your selected fb friends on their Birthday
Stars: ✭ 39 (+178.57%)
Mutual labels:  birthday
venus
OO Standard Library for Perl 5
Stars: ✭ 14 (+0%)
Mutual labels:  perl5

Tweet

gedcom

A general purpose utility for gedcom files. This program does a lot of different things with a gedcom file.

Print today's family anniversaries

Given your family tree as a gedcom, gedcom will tell you whose birthday it is and who died on this day. Although primarily a tool for genealogy, the -l flag tells gedcom to include matches for family members that are still alive.

The -d flag will give you a short biography of each person.

Try adding this to your crontab, it will give you a daily e-mail of your relative's birthdays and the anniversaries of their death along with information about their life.

3 5 * * * gedcom -dl gedcom-file.ged

or

22 5 * * * gedcom -dth 'Your Full Name' gedcom-file.ged

Gedcom validation

Gedcom also includes santity checking of your Gedcom file, including missing, impossible and inconsistent information. You can enable this mode with -w, which will print warnings of anything it finds. It's a sort of lint for Gedcom files.

For example:

gedcom -dAwWl gedcom-file.ged > /dev/null

Adding the -c option will add the checking of missing citations.

To sort by error type:

gedcom -dAwWl gedcom-file.ged > /dev/null 2> /tmp/errs
sort -t: -k2 /tmp/errs

Genealogy Calendar

You can create a month-to-a-page genealogical calendar of your ancestors:

for i in 1 2 3 4 5 6 7 8 9 10 11 12
do
    gedcom -dwHm $i -y $(date +%Y) gedcom-file.ged > $i.html
done

To print a month-to-a-page calendar of all the Smiths in your tree as a present, choose any Smith in your tree as a home person so that the -s option works:

for i in 1 2 3 4 5 6 7 8 9 10 11 12
do
    gedcom -dwHlm $i -y $(date +%Y) -h 'John Smith' -s gedcom-file.ged > $i.html
done

Alternatively you can create an ICS file to import to Google Calendar:

gedcom -i /tmp/ics.ics gedcom-file.ged

Produce a Google Map

You can produce a map of locations of all Smiths in your tree with

gedcom -xsh Smith gedcom-file-ged > smith.csv
  • Upload the csv file to Google Drive
  • Visit google.com/maps, on the 3 horizontal lines choose "your places", then "maps"
  • Click "create map", choose "import" and upload your file, choose "Location" as the position column and "People" as the title column
  • You may see that a number of rows can't be seen in the map, this is an opportunity to find locations in your map that are incorrect

Family History Book

You can create a genealogy book as a PDF of your family history to give to your dad on father's day:

# Note that this will only print people related to your father, even if you give -a
# yum install gd-devel ImageMagick-devel
gedcom -B family-history.pdf -dh "Your Father's Full Name" gedcom-file.ged

You can create a book of your family name based on the descendants of John Smith:

gedcom -GB smith.pdf -dsh 'John Smith' gedcom-file.ged

If you enable the -w flag with the -B option, warnings will appear in red in the book.

Environment Variables

For compatibility with other code, these environment variables are honoured:

BMAP_KEY: Bing (virtualearth.net) API Key
GEONAMES_USE: geonames.org registered username
GMAP_KEY: Google Places (maps.googleapis.com) API Key
LANG: some handling of en_GB and en_US translating between then, fr_FR is a work in progress
OPENADDR_HOME: directory of data from http://results.openaddresses.io/
REDIS_SERVER: ip:port pair of where to cache geo-coding data

Reference

The options are:

-a: all days otherwise just today
-A: print everyone, in alphabetical order
-b: only print birthdays
-B: create a genealogy book
-c: give citations on detailed listing
-C: print birth dates of children
-d: show the detailed lifetime information about the person
-D: only print anniversaries of deaths
-e: external website to use for the -L option
-f: treat warnings as fatals, implies -w
-F: create a forefathers book
-G: print everyone, in generation order
-g: prints a GML of the locations
-H: Print an HTML calendar of this month
-h: set the home person - useful for calculating relationships with -d
-i: creates an ICS file
-m: month for -H calendar
-M: produce a map of a place (currently only Kent is supported) as
an animated gif of births into $surname.gif
-l: include living people
-L: include ged2site hyperlinks with -H
-p: print the biography of the given person
-t: print tomorrow's information, don't use with -a
-T: print a list of towns, useful for finding typos and inconsistencies
-s: only print entries matching the home person's surname
-S: create an SQLite database from a Gedcom
-v: verbose - for debugging
-w: print warning about inconsistent data - a sort of lint for Gedcom files
-W: don't colorize warning output
-x: prints a list of towns in a format suitable to import into a google map
-y: year for -H calendar, or -T to give a list of places for a specific year

Running on Windows

  • Firstly, if you're running Windows 10, install Ubuntu or install Perl directly, either ActiveState or Strawberry should work fine. I have also had success using Cygwin's Perl.

  • Next follow the instructions at local::lib.

  • Load in all the CPAN modules that gedcom uses. If you're not sure, run gedcom with no arguments and the program will install its core modules to get started.

Bugs

There will be numerous strange handling of Gedcoms since it's not that tightly observed by websites. If you see lumpy English text in the output, or just plain mistakes, please e-mail me or add a bug report to github.com/nigelhorne/gedcom.

I've tested against a number of Gedcoms including the Torture Tests at https://www.tamurajones.net/DownloadTortureTests.xhtml and gedcoms from gedcomlibrary.com.

With the -T option, countries and counties can be optimized out. That will be fixed.

Pre-Requisites

This program uses many CPAN modules. Running the program for the first time with no arguments should install them, of course that will fail if you don't have the privilege, in which case you'll need to add them by hand. To ensure you'll be installing them in a directory you can use either use local::lib or perlbrew.

Library - library of code common with ged2site.

Acknowledgements

So many Perl CPAN modules that if I list them all I'll miss one, but special mention goes to the Gedcom module.

See Also

  • ged2site - create a website from a Gedcom file
  • gedcmp - compare two Gedcoms
  • lib - library of routines used by this package

LICENSE AND COPYRIGHT

Copyright 2015-2022 Nigel Horne.

This program is released under the following licence: GPL for personal use on a single computer. All other users (including Commercial, Charity, Educational, Government) must apply in writing for a licence for use from Nigel Horne at <njh at nigelhorne.com>.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].