JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 7
  • Score
    100M100P100Q54992F
  • License ISC

A GEDCOM parser, which translates GEDCOM (.ged) files into D3 capable JSON. This package is specifically designed to prepare data for use in https://github.com/oh-kay-blanket/blood-lines

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.


Installation

npm install --save gedcom-d3

API

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 like id, name, surname, gender, dob, yob, color, bio, etc.
    • links: Array of relationship links (parent/child, spouse, etc.), with source, 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 visualizations

Node (Person)

  • id: Unique identifier (GEDCOM pointer)
  • name: Full name
  • firstName, surname: Parsed name parts
  • gender: 'M' or 'F'
  • dob, yob: Date/year of birth
  • dod, yod: Date/year of death
  • pob, pod: Place of birth/death
  • families: Array of family objects
  • color: Assigned color for surname
  • bio: Biographical notes (if present)
  • ...and more, depending on GEDCOM tags
  • source: Source person id
  • target: Target person id
  • sourceType, 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).
  • In another project, run:
    npm install /path/to/gedcom-d3
  • Or use npm link for local development.

3. Commit and push your changes

git add .
git commit -m "Describe your changes"
git push

4. 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


License

ISC


Contributing

Pull requests and issues welcome! See oh-kay-blanket/gedcom-d3.


Credits