Package Exports
- gedcom-d3
 - gedcom-d3/index.js
 
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (gedcom-d3) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
gedcom-d3
A parser and converter for GEDCOM (.ged) files, producing D3-capable JSON for genealogy visualization, especially with 3d-force-graph.
- Based on: tmcw/parse-gedcom
 - See it in action: oh-kay-blanket/blood-lines
 
Installation
npm install --save gedcom-d3API
parse(gedcomString)
- Input: A string containing GEDCOM data.
 - Output: An array of parsed GEDCOM objects (tree structure).
 
d3ize(tree)
- Input: The output of 
parse()(GEDCOM tree array). - Output: An object with the following structure:
nodes: Array of person nodes, each with properties likeid,name,surname,gender,dob,yob,color,bio, etc.links: Array of relationship links (parent/child, spouse, etc.), withsource,target, and relationship type.families: Array of family groupings from the GEDCOM data.surnameList: Array of unique surnames with color assignments.
 
Usage Example
import { parse, d3ize } from 'gedcom-d3'
import gedcomFile from './gedcoms/sample_ancestors.ged'
const tree = parse(gedcomFile)
const d3Data = d3ize(tree)
// d3Data.nodes and d3Data.links can be fed into 3d-force-graph or similar D3 visualizationsNode & Link Structure
Node (Person)
id: Unique identifier (GEDCOM pointer)name: Full namefirstName,surname: Parsed name partsgender: 'M' or 'F'dob,yob: Date/year of birthdod,yod: Date/year of deathpob,pod: Place of birth/deathfamilies: Array of family objectscolor: Assigned color for surnamebio: Biographical notes (if present)- ...and more, depending on GEDCOM tags
 
Link (Relationship)
source: Source personidtarget: Target personidsourceType,targetType: Relationship roles (e.g., 'HUSB', 'WIFE', 'CHIL')type: Relationship type (e.g., 'MARR', 'DIV', or parentage)
Updating & Publishing the NPM Package
1. Make your changes
- Edit code, update version in 
package.json(see semver). 
2. Test locally (optional but recommended)
- In another project, run:
npm install /path/to/gedcom-d3
 - Or use 
npm linkfor local development. 
3. Commit and push your changes
git add .
git commit -m "Describe your changes"
git push4. Bump the version
- For a patch, minor, or major update:
npm version patch # or 'minor' or 'major' git push && git push --tags
 
5. Publish to NPM
- Log in if you haven't:
npm login - Publish:
npm publish - For scoped packages (not needed here):
npm publish --access public
 
6. Verify
- Check your package at npmjs.com/package/gedcom-d3
 
License
ISC
Contributing
Pull requests and issues welcome! See oh-kay-blanket/gedcom-d3.
Credits
- tmcw/parse-gedcom for the original parser
 - vasturiano/3d-force-graph for visualization inspiration
 - oh-kay-blanket/blood-lines for implementation example