nigelhorne / ged2site

Create a family tree website from a Gedcom file
https://genealogy.nigelhorne.com
GNU General Public License v2.0
36 stars 4 forks source link

Static HTML for living individuals #115

Closed jhannah closed 1 month ago

jhannah commented 1 month ago

20 years ago when I generated my static HTML from my GEDCOM, if a person was living their birth date was hidden. I'm careful not to put any sensitive information in my GEDCOM for living individuals. (Arguably, mother's maiden name is sensitive (used to be? does anyone use that as a security question anymore?), so I just remove people from my GEDCOM if they don't want to be on my website at all.)

It appears ged2site is behaving like this:

What's the current rule? Deceased for 100 years?

Is there a switch for less aggressive data hiding? -l include living people isn't aggressive enough for me, apparently. 😄 Thanks!

./ged2site -cFdh 'Jay Weston Hannah' -l ~/Desktop/jay_new.ged
jhannah commented 1 month ago

Off topic:

nigelhorne commented 1 month ago

The problem is that different people want different levels of privacy from full transparency to paranoia. The binary model ged2site has isn't sufficient, I need to design a way where what can be published and what can't is configurable. That will need some thought.

jhannah commented 1 month ago

I split out a tiny GEDCOM of just 2 generations from me so I could run master 7ad9ccbc53d3b40f9d309fe580dbfb0b9d5fd569 without the explosions that come from my full GEDCOM (#112).

./ged2site -cFdh 'Jay Weston Hannah' -l ~/src/private/genealogy/jay_small.ged
[============================================================] 100% [20/20]

Woot! :tada: Looking great! Except:

0 @I1073@ INDI
1 NAME Luella Jean /Long/

ohh... I bet there's a bug somewhere given her multiple marriages:

Luella is the grandmother of Jay Hannah, was born in Salem, IA, USA on Sep 30, 1924 and. She has been married 3 times - to Benjamin Hannah (on Sep 30, 1943 in Salem, IA) Hjalmar Monson (on Aug 4, 1955 in Dexter, IA) Robert Brombaugh (on Dec 10, 1988 in Mt. Pleasant, IA). She has 4 surviving children: John Robert, Stephen Gail and James Bradley with Benjamin Millard; and Lynn Edward with Hjalmar Frank.

It's trying to string together Luella Jean Long-Hannah-Monson-Brombaugh and exploding?

jhannah commented 1 month ago

I don't know why jay_small.ged (20 people) kicks out all data on all people, while jay.ged (4K people) suppresses Parents, Children, Notes, Family Tree for ... anyone who didn't die ... 100 years ago? I don't know the rule, nor where in the code the mechanism is for deciding what should be suppressed. (Is that logic spread out in many places?)

Even if the rule is "died 100 years ago" that's still exposing the birth date of my living grandmother (who's about to turn 100 🍰) -- in the Children list and Family Tree of her parents.

nigelhorne commented 1 month ago

Look for the subroutine is_alive, around line 11807. There is a bit of an inconsistency there - sometimes the magic number is 100, and sometimes it's 120. I meant to make it 120, but it looks like I missed one path through the code. It's an easy fix.

jhannah commented 1 month ago

FYI at master 57c90a069ac879560e58be5ac9abe17d0e8dd670

$ ./ged2site -cFdh 'Jay Weston Hannah' -l ~/src/private/genealogy/jay_small.ged

1) All birth dates for living individuals are exposed on my small GEDCOM. I understand you're dealing with a lot of different people wanting different things. I'll start working on a branch for what I want, which is "if the person is living, hide their birth date. Show everything else."

2) And the weird filenames problem got bigger. :)

    $ ls -1 static-site/*nee*
    static-site/Luella-Jean-Brombaugh-(nee-Long)-1924.html
    static-site/Sharon-Erlene-Hannah-(nee-Humphrey)-1947.html
jhannah commented 1 month ago

Regarding 1. above: Here are a set of hacks that seem to implement the behavior I want (and my sloppy debug notes): https://github.com/nigelhorne/ged2site/compare/master...jhannah:ged2site:115-bday-of-living-is-private?expand=1

If desired I could clean that up for merge, under whatever ruberic of new run-time option / flag / config file you'd prefer.

jhannah commented 1 month ago

Regarding 2. above: I added more hacks to my branch 115-bday-of-living-is-private (link above) which fix the filename problems (running against my tiny jay_small.ged). Probably a terrible patch. No idea how nee is slipping into the filename...

Macil-Marine-Stark-1921.html
Sharon-Erlene-Humphrey-1947.html

All the hyperlinks seem to work now. 🎉 And nee is in the <h1> of each individual's file, which is good. 😄 I didn't know what "nee" was until today.

nigelhorne commented 1 month ago

You may find commit f62674e will help with data leakage (specifically including of DOB in the filenames of living people). It also should help with other filename oddities.

I've also added some comments from your patches, which help. Thanks.

nigelhorne commented 1 month ago

I split out a tiny GEDCOM of just 2 generations from me so I could run master 7ad9ccb without the explosions that come from my full GEDCOM (#112).

./ged2site -cFdh 'Jay Weston Hannah' -l ~/src/private/genealogy/jay_small.ged
[============================================================] 100% [20/20]

Woot! 🎉 Looking great! Except:

  • Whoops, now the birth dates of living individuals are exposed. I don't want that. :)
  • Links to my grandmother try to load static-site/Luella-Jean-Long-1924.html which looks healthy, but that's 404 because she was written to disk as static-site/Luella-Jean-Brombaugh-\(nee-Long\)-1924.html ... I have no idea why that happened, her name is very boring (no special characters) in my GEDCOM:
0 @I1073@ INDI
1 NAME Luella Jean /Long/

ohh... I bet there's a bug somewhere given her multiple marriages:

Luella is the grandmother of Jay Hannah, was born in Salem, IA, USA on Sep 30, 1924 and. She has been married 3 times - to Benjamin Hannah (on Sep 30, 1943 in Salem, IA) Hjalmar Monson (on Aug 4, 1955 in Dexter, IA) Robert Brombaugh (on Dec 10, 1988 in Mt. Pleasant, IA). She has 4 surviving children: John Robert, Stephen Gail and James Bradley with Benjamin Millard; and Lynn Edward with Hjalmar Frank.

It's trying to string together Luella Jean Long-Hannah-Monson-Brombaugh and exploding?

That shouldn't be a problem. I have several people in my tree who have been married several times. I'll look into it.

nigelhorne commented 1 month ago

Can you retest? Other fixes (the names of files) may have fixed this.

jhannah commented 1 month ago

Yes, I think you fixed all the subtle bugs I noticed. Thanks! My branch https://github.com/nigelhorne/ged2site/compare/master...jhannah:ged2site:115-bday-of-living-is-private?expand=1 has been rebased on your new master so I get the living person behavior I want. So once my full GEDCOM run survives (#112) I think I'd have everything I'm looking for? 🙂