How nicolodemus/familienbaum works
Familienbaum is a browser-based family-history visualizer and editor. Users supply member records and family links, choose a starting node, then browse a laid-out tree by opening or collapsing relationships; the editor can add or remove relatives, update details, and copy data or anniversary listings. The main runtime path runs from the tree controller through DAG construction and layout to D3/SVG rendering. The excerpts show key calls and editing behavior; some README-documented capabilities are retained, but unsampled page wiring and stylesheet behavior are not asserted.
Main entry points: familienbaum.js Tree controller · editor.js Tree editor · input.js Member and link data · dag_with_relations.js Relationship queries
Components 12
Family data
- Member and link data
input.js
DAG model
- DAG construction
js/dag.js - Relationship queries
js/dag_with_relations.js - Family data DAG
js/dag_with_family_data.js - Generation layout
js/dag_layout.js - Position relaxation
js/dag_relaxation.js
Tree browsing
- Tree controller
js/familienbaum.js - SVG tree renderer
js/familienbaum.js
Editing and output
- Tree editor
js/editor.js - Anniversary output
js/editor.js
Other components
- Family historian
- D3 library
Connections 15
- Family historian → Member and link data: provides records
README.md - Member and link data → Tree controller: starts visualization
README.md - Tree controller → Family data DAG: builds filtered DAG
js/familienbaum.js - Family data DAG → Relationship queries: creates relations
js/dag_with_family_data.js - Relationship queries → DAG construction: constructs DAG
js/dag_with_relations.js - Tree controller → Generation layout: calculates layout
js/familienbaum.js - Generation layout → Position relaxation: relaxes positions
js/dag_layout.js - Tree controller → SVG tree renderer: draws tree
js/familienbaum.js - SVG tree renderer → D3 library: renders with
js/familienbaum.js - Family historian → Tree controller: browses relationships
README.md - SVG tree renderer → Tree editor: opens editor
js/familienbaum.js - Tree editor → Member and link data: updates records
js/editor.js - Tree editor → Tree controller: rebuilds and redraws
js/editor.js - Tree editor → Anniversary output: generates listings
js/editor.js - Family historian → Tree editor: edits relatives
README.md