Kurzanleitung zur Generierung einer eigenen Stammbaum-HTML-Seite
Der Name der Person, die ihren Stammbaum generieren will sei "Nobody". Dann sind folgende Dateien zu erzeugen
- "Nobody-Stammbaum.html" für die HTML-Seite im Hauptverzeichnis
- "Nobody/" ein Unterverzeichnis
- "Nobody/Nobody-Stammbaum.txt" für Personentabelle
- "Nobody/Fotos" ein Unterverzeichnis mit JPG-Files für die Foto-Galerie & Paßbilder (wird rekursiv durchsucht)
- "Nobody/Dokumente" ein Unterverzeichnis mit Bildern (JPG-Files) der Dokumente
- "Nobody/Nobody-Legende.html" für Legende
Aufbau der HTML-Seite ("Nobody-Stammbaum.html")
Ich beschreibe hier nur die Grundstruktur der Seite. Sie kann natürlich jederzeit beliebig ergänzt werden
<!DOCTYPE html>
<html>
<head>
<link rel="icon" type="image/x-icon" href="stammbaum.png">
<title>Nobodys Stammbaum</title>
<link rel="stylesheet" href="Stammbaum.css">
</head>
<body>
... Hier kann man eigene Zusatzinfos einbauen...
</body>
<script src="Stammbaum.js"></script>
<script>
generate_page("Nobody/","Nobody","nobody@nowhere.de");
</script>
</html>
Das File "Stammbaum.js" mit dem nötigen Javascript-Code findet man auf meiner Homepage.
Die Seite wird komplett generiert mit dem Aufruf von 'generate_page("Nobody/","Nobody","nobody@nowhere.de");'
Der 1. Parameter ist das Unterverzeichnis, der 2. der Filenamen-Prefix und der 3. eine optionale Email-Adresse, die im Footer angezeigt wird.
Stammbaum-Daten ("Nobody/Nobody-Stammbaum.txt")
Dieses Textfile enthält alle Personendatensätze, die für die Baum-Grafik und Personen- und Familientabelle benötigt werden.
Es besteht aus einer Zeile pro Person, wobei die Felder durch das $-Zeichen getrennt werden. Der Aufbau ist folgender:
ID $ Name $ Geboren $ Ort $ Taufe $ Geburtsname $ Vater-ID $ Mutter-ID $ Heirat $ Ort $ mit (ID) $ Beruf $ gestorben
Unbekannte Daten bleiben einfach leer. Ein Beipiel-Datensatz wäre
2 $ Heinz Petzold $ 30.12.1928 $ Dresden $ 21.04.1935 $ $ 10 $ 11 $ 5.5.1949 $ Dresden $3 $ Elektriker $ 23.2.2015 $
Die Personen-ID ist eine eindeutige Zahl, wobei Nobody-ID = 1 (als root) zu setzen ist.
Alle anderen ID sind beliebige Zahlen von 2 - 999, die nichts mit dem Verwandschaftsverhältnis zu tun haben müssen.
Aller Text nach einem '%'-Zeichen bis zum Zeilenende wird ignoriert (als Zeilen-Kommentar, auch ganze Zeilen)
Dokumente (aus dem Unterverz. "Nobody/Dokumente") werden in diesem File mit '#' am Zeilenanfang markiert.
Sie bestehen aus Komma-separierten Daten (#Filename, P1, P2 ...) für alle im Dokument erwähnten Personen:
% #JPG, P1, P2, ...
% Px = Person-ID flags
% ID=0 -> Person hier (noch) nicht erfaßt
% x: *=birthday t=Taufe +=deathday c=confirmation g=groom b=bride f=father m=mother a=age u=Todesursache p=profession
%
#GKM-1883-Tod-Auguste-Köhler.jpg, 27 +a, 222 +a % Mutter und Kind + einen Tag später
#GKM-1884-Heirat-Köhler-Börtz.jpg, 26 ga f30, 230 ba f0 % vorherige Ehe von Johann Köhler durch den Tod getrennt
Für alle Dokumente muß eine entspr. Zeile vorhanden sein.
Fotos ("Nobody/Fotos")
In diesem Verzeichnis werden alle Fotos (mit Suffix ".jpg") für die Galerie gespeichert. Auch Unterverzeichnisse werden rekursiv durchsucht.
Ein Sonderfall sind die Files mit dem Namen "ID.jpg", mit der max. 3-stelligen Personen-ID. Diese werden als Paßfotos den Personen zugeordnet.
Legende ("Nobody/Nobody-Legende.html")
Der Inhalt dieses normalen Textfiles (ohne <HTML>-Tag und <body>-Tag) wird als Legende parsiert.
Der Suffix .html dient nur zur besseren Formatierung im Editor des Anwenders (zB. im Emacs).
Bei der Parsierung (in "Stammbaum.js") werden Links wie zB <a href='#SchwagerBerta.jpg'> speziell ausgewertet als Popup-Bilder aus der Foto-Galerie.
Links wie zB <a href='#123'> werden für ein Popup der Personen-ID verlinkt.
Ansonsten sind auch normale URL zulässig, wie href="https://de.wikipedia.org/wiki/Wanderjahre".
Die Headline-Tags <Hn>, n=1..5 werden zur Erzeugung des Inhaltsverzeichnisses am Anfang der Legende ausgewertet (als entspr. eingerückte Links).
Hilfreich für die Strukturierung der Legende finde ich das <details>-HTML-Tag.
Damit kann man Zusatzinfos zu Orten, Geschichten usw. schön in die Seite einbetten, ohne sie zu überladen.
P.S. Bei Problemen oder Fragen könnt Ihr euch gern per 📧 Email an mich wenden
Viel Spaß bei der Generierung Eures eigenen Stammbaums!