generations

package module
v0.0.0-...-d049a8a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 17, 2021 License: AGPL-3.0 Imports: 15 Imported by: 0

README

generations

This tool can help you create beautiful genealogy tree diagrams.

Toolchain (What does it use?)

Installation (How do I get it?)

With a Go environment setup, you can just do this:

go get -u github.com/jojomi/generations/cmd

Make sure you have lualatex in your system's PATH, on Linux usually via TeXlive, on Windows via MikTeX. There is a package you might need to add, specifically texlive-pictures for the genealogytree code.

Usage (How do I use it?)

The schema for the database entries can be found in flat_person.go and models.go while the features of a document config is in cmd/database_config.go (with references to render_tree_options.go and render_person_options.go).

Examples (What does it look like?)

You can find an example database and a document config in the repository.

To render this, you execute:

generations --config-file example/config.yml
lualatex test.tex

The result should look like this (when converted to images):

page1

page2

(the real pdf)

FAQ

  1. What if I don't like LuaLaTeX?

You can compile with other TeX processors too, but you most likely will have to change the document template.

  1. How do I use Fraktur fonts?

Install ttf-unifraktur package, then in custom-head use this code:

\defaultfontfeatures{Ligatures=TeX}
\setmainfont{UnifrakturMaguntia}
\setsansfont{UnifrakturMaguntia}

More info: http://unifraktur.sourceforge.net/maguntia.html

  1. How do I help LaTeX with hyphenating?

In custom-head use this code:

\hyphenation{Spe-cial-town-name}

Documentation

Index

Constants

View Source
const GenerationsNone = -1

Variables

This section is empty.

Functions

func FourFourYearIDFunc

func FourFourYearIDFunc(p Person, d Database) error

func GetFourFourBirthNameID

func GetFourFourBirthNameID(p Person) (string, error)

func GetFourFourYearID

func GetFourFourYearID(p Person) (string, error)

func GetLastFirstNameID

func GetLastFirstNameID(p Person) (string, error)

func RenderGenealogytree

func RenderGenealogytree(p Person, o RenderTreeOptions) ([]byte, error)

func RenderTemplateFile

func RenderTemplateFile(filename string, data interface{}) ([]byte, error)

func SplitPersons

func SplitPersons(personList PersonList, split Person) (younger PersonList, older PersonList)

Types

type AbsoluteLevel

type AbsoluteLevel struct {
	Index      int             `yaml:"index,omitempty"`
	Color      LevelColor      `yaml:"color,omitempty"`
	BoxOptions LevelBoxOptions `yaml:"box-options,omitempty"`
	Options    LevelOptions    `yaml:"options,omitempty"`
}

func (*AbsoluteLevel) Equals

func (l *AbsoluteLevel) Equals(other AbsoluteLevel) bool

func (*AbsoluteLevel) GetBoxOptions

func (l *AbsoluteLevel) GetBoxOptions() LevelBoxOptions

func (*AbsoluteLevel) GetColor

func (l *AbsoluteLevel) GetColor() LevelColor

func (*AbsoluteLevel) GetOptions

func (l *AbsoluteLevel) GetOptions() LevelOptions

func (*AbsoluteLevel) IsChildLevel

func (l *AbsoluteLevel) IsChildLevel(probandLevel int) bool

func (*AbsoluteLevel) IsParentLevel

func (l *AbsoluteLevel) IsParentLevel(probandLevel int) bool

func (*AbsoluteLevel) IsProbandLevel

func (l *AbsoluteLevel) IsProbandLevel(probandLevel int) bool

func (*AbsoluteLevel) SetBoxOptions

func (l *AbsoluteLevel) SetBoxOptions(lb LevelBoxOptions)

func (*AbsoluteLevel) SetColor

func (l *AbsoluteLevel) SetColor(lc LevelColor)

func (*AbsoluteLevel) SetOptions

func (l *AbsoluteLevel) SetOptions(lb LevelOptions)

type Database

type Database interface {
	Get(search string) (Person, error)
	GetByID(ID string) (Person, error)
	MakeIDs(f func(p Person, d Database) error) error
}

type DatePlace

type DatePlace struct {
	// need to support things like "before 1932" here
	Date  string `yaml:"date,omitempty"`
	Place string `yaml:"place,omitempty"`
}

func (DatePlace) Empty

func (d DatePlace) Empty() bool

func (DatePlace) GetAgeBegin

func (d DatePlace) GetAgeBegin(other DatePlace) int

type FlatPerson

type FlatPerson struct {
	Dummy         bool               `yaml:"-"`
	ID            string             `yaml:"id,omitempty"`
	UUID          string             `yaml:"uuid,omitempty"`
	ChildNumber   int                `yaml:"child_number,omitempty"`
	Name          Name               `yaml:"name,omitempty"`
	Gender        string             `yaml:"gender,omitempty"`
	Birth         DatePlace          `yaml:"birth,omitempty"`
	Baptism       DatePlace          `yaml:"baptism,omitempty"`
	Death         DatePlace          `yaml:"death,omitempty"`
	Burial        DatePlace          `yaml:"burial,omitempty"`
	Mom           string             `yaml:"mom,omitempty"`
	Dad           string             `yaml:"dad,omitempty"`
	Partners      []FlatRelationship `yaml:"partners,omitempty"`
	Attributes    []string           `yaml:"attributes,omitempty"`
	ImageFilename string             `yaml:"image,omitempty"`
	Floruit       string             `yaml:"floruit,omitempty"`
	Jobs          string             `yaml:"jobs,omitempty"`
	Comment       string             `yaml:"comment,omitempty"`

	Database *MemoryDatabase `yaml:"-"`
}

func NewDummyFlatPerson

func NewDummyFlatPerson() *FlatPerson

func (*FlatPerson) AddAttribute

func (d *FlatPerson) AddAttribute(attr string)

func (*FlatPerson) GetAge

func (d *FlatPerson) GetAge(now time.Time) int

func (*FlatPerson) GetAttributes

func (d *FlatPerson) GetAttributes() []string

func (*FlatPerson) GetBaptism

func (d *FlatPerson) GetBaptism() DatePlace

func (*FlatPerson) GetBirth

func (d *FlatPerson) GetBirth() DatePlace

func (*FlatPerson) GetBurial

func (d *FlatPerson) GetBurial() DatePlace

func (*FlatPerson) GetChildNumber

func (d *FlatPerson) GetChildNumber() int

func (*FlatPerson) GetChildren

func (d *FlatPerson) GetChildren() (PersonList, error)

func (*FlatPerson) GetChildrenParents

func (d *FlatPerson) GetChildrenParents() (PersonList, error)

func (*FlatPerson) GetChildrenWith

func (d *FlatPerson) GetChildrenWith(partner Person) (PersonList, error)

func (*FlatPerson) GetComment

func (d *FlatPerson) GetComment() string

func (*FlatPerson) GetDad

func (d *FlatPerson) GetDad() (Person, error)

func (*FlatPerson) GetDeath

func (d *FlatPerson) GetDeath() DatePlace

func (*FlatPerson) GetDeathAge

func (d *FlatPerson) GetDeathAge() int

func (*FlatPerson) GetFloruit

func (d *FlatPerson) GetFloruit() string

func (*FlatPerson) GetGender

func (d *FlatPerson) GetGender() Gender

func (*FlatPerson) GetID

func (d *FlatPerson) GetID() string

func (*FlatPerson) GetImageFilename

func (d *FlatPerson) GetImageFilename() string

func (*FlatPerson) GetJobs

func (d *FlatPerson) GetJobs() string

func (*FlatPerson) GetMom

func (d *FlatPerson) GetMom() (Person, error)

func (*FlatPerson) GetName

func (d *FlatPerson) GetName() Name

func (*FlatPerson) GetPartners

func (d *FlatPerson) GetPartners() (PersonList, error)

func (*FlatPerson) GetRelationships

func (d *FlatPerson) GetRelationships() []Relationship

func (*FlatPerson) GetUUID

func (d *FlatPerson) GetUUID() string

func (*FlatPerson) IsDummy

func (d *FlatPerson) IsDummy() bool

func (*FlatPerson) MatchesIDUUID

func (d *FlatPerson) MatchesIDUUID(idUUIDSearches ...string) bool

func (*FlatPerson) MatchesSearch

func (d *FlatPerson) MatchesSearch(search string) bool

func (*FlatPerson) SetComment

func (d *FlatPerson) SetComment(comment string)

func (*FlatPerson) SetID

func (d *FlatPerson) SetID(id string)

func (*FlatPerson) SetImageFilename

func (d *FlatPerson) SetImageFilename(filename string)

func (*FlatPerson) SetJobs

func (d *FlatPerson) SetJobs(jobs string)

func (FlatPerson) String

func (d FlatPerson) String() string

type FlatRelationship

type FlatRelationship struct {
	PartnerID  string    `yaml:"partner_id,omitempty"`
	Engagement DatePlace `yaml:"engagement,omitempty"`
	Marriage   DatePlace `yaml:"marriage,omitempty"`
	Divorce    DatePlace `yaml:"divorce,omitempty"`

	Person FlatPerson `yaml:"-"`
}

func (FlatRelationship) GetDivorce

func (f FlatRelationship) GetDivorce() *DatePlace

func (FlatRelationship) GetEngagement

func (f FlatRelationship) GetEngagement() *DatePlace

func (FlatRelationship) GetMarriage

func (f FlatRelationship) GetMarriage() *DatePlace

func (FlatRelationship) GetPartner

func (f FlatRelationship) GetPartner() (Person, error)

type Gender

type Gender int8

Gender x ENUM( unknown male female )

const (
	// GenderUnknown is a Gender of type Unknown
	GenderUnknown Gender = iota
	// GenderMale is a Gender of type Male
	GenderMale
	// GenderFemale is a Gender of type Female
	GenderFemale
)

func ParseGender

func ParseGender(name string) (Gender, error)

ParseGender attempts to convert a string to a Gender

func (Gender) IsUnknown

func (g Gender) IsUnknown() bool

func (Gender) String

func (x Gender) String() string

String implements the Stringer interface.

type GenderOrder

type GenderOrder int
ENUM(

MaleFirst = 1 FemaleFirst

const (
	// GenderOrderMaleFirst is a GenderOrder of type MaleFirst
	GenderOrderMaleFirst GenderOrder = iota + 1
	// GenderOrderFemaleFirst is a GenderOrder of type FemaleFirst
	GenderOrderFemaleFirst
)

func ParseGenderOrder

func ParseGenderOrder(name string) (GenderOrder, error)

ParseGenderOrder attempts to convert a string to a GenderOrder

func (GenderOrder) String

func (x GenderOrder) String() string

String implements the Stringer interface.

type GraphType

type GraphType int
ENUM(

parent = 1 child sandclock

const (
	// GraphTypeParent is a GraphType of type Parent
	GraphTypeParent GraphType = iota + 1
	// GraphTypeChild is a GraphType of type Child
	GraphTypeChild
	// GraphTypeSandclock is a GraphType of type Sandclock
	GraphTypeSandclock
)

func ParseGraphType

func ParseGraphType(name string) (GraphType, error)

ParseGraphType attempts to convert a string to a GraphType

func (GraphType) String

func (x GraphType) String() string

String implements the Stringer interface.

type LastnamePolicy

type LastnamePolicy int
ENUM(

Birth = 1 Current CurrentAndBirth

const (
	// LastnamePolicyBirth is a LastnamePolicy of type Birth
	LastnamePolicyBirth LastnamePolicy = iota + 1
	// LastnamePolicyCurrent is a LastnamePolicy of type Current
	LastnamePolicyCurrent
	// LastnamePolicyCurrentAndBirth is a LastnamePolicy of type CurrentAndBirth
	LastnamePolicyCurrentAndBirth
)

func ParseLastnamePolicy

func ParseLastnamePolicy(name string) (LastnamePolicy, error)

ParseLastnamePolicy attempts to convert a string to a LastnamePolicy

func (LastnamePolicy) String

func (x LastnamePolicy) String() string

String implements the Stringer interface.

type Level

type Level interface {
	GetColor() LevelColor
	GetBoxOptions() LevelBoxOptions
	GetOptions() LevelOptions
	SetColor(c LevelColor)
	SetBoxOptions(b LevelBoxOptions)
	SetOptions(b LevelOptions)
}

func Merge

func Merge(a, b Level) Level

func MergeWithBase

func MergeWithBase(a, b Level) Level

type LevelBoxOptions

type LevelBoxOptions struct {
	Main string `yaml:"main,omitempty"`
	Leaf string `yaml:"leaf,omitempty"`
}

func (*LevelBoxOptions) Equals

func (lo *LevelBoxOptions) Equals(other LevelBoxOptions) bool

func (*LevelBoxOptions) IsEmpty

func (lo *LevelBoxOptions) IsEmpty() bool

func (*LevelBoxOptions) Merge

func (lo *LevelBoxOptions) Merge(inheritedOpts LevelBoxOptions) *LevelBoxOptions

Merge does append!

type LevelColor

type LevelColor struct {
	Main string `yaml:"main,omitempty"`
	Leaf string `yaml:"leaf,omitempty"`
}

func (*LevelColor) Equals

func (lc *LevelColor) Equals(other LevelColor) bool

func (*LevelColor) IsEmpty

func (lc *LevelColor) IsEmpty() bool

func (*LevelColor) MergeWithBase

func (lc *LevelColor) MergeWithBase(lc2 *LevelColor) *LevelColor

merge with default

func (*LevelColor) OverwriteWith

func (lc *LevelColor) OverwriteWith(lc2 *LevelColor) *LevelColor

overwrite

type LevelConfig

type LevelConfig struct {
	Absolute []AbsoluteLevel `yaml:"absolute,omitempty"`
	Relative []RelativeLevel `yaml:"relative,omitempty"`

	// globals
	Color      LevelColor      `yaml:"color,omitempty"`
	BoxOptions LevelBoxOptions `yaml:"box-options,omitempty"`
	Options    LevelOptions    `yaml:"options,omitempty"`

	Themes []string `yaml:"themes,omitempty"`

	// generated
	Combined []AbsoluteLevel `yaml:"-"`
}

func (*LevelConfig) AddDefaultLevels

func (l *LevelConfig) AddDefaultLevels(from, to int) *LevelConfig

func (*LevelConfig) Combine

func (l *LevelConfig) Combine(probandLevel int)

func (*LevelConfig) Inherit

func (l *LevelConfig) Inherit(probandLevel int, baseConfig LevelConfig) *LevelConfig

func (*LevelConfig) SetGlobals

func (l *LevelConfig) SetGlobals() *LevelConfig

type LevelOptions

type LevelOptions string

func (*LevelOptions) Merge

func (lo *LevelOptions) Merge(inheritedOpts LevelOptions) *LevelOptions

type Marriage

type Marriage struct {
	DatePlace
	Partner Person
}

type MemoryDatabase

type MemoryDatabase struct {
	Persons []*FlatPerson
	Sources []Source // TODO Familybook sollte Source heißen und Source eher Reference
}

func NewMemoryDatabase

func NewMemoryDatabase() *MemoryDatabase

func (MemoryDatabase) Anonymize

func (y MemoryDatabase) Anonymize()

func (MemoryDatabase) Get

func (y MemoryDatabase) Get(search string) (Person, error)

func (MemoryDatabase) GetByID

func (y MemoryDatabase) GetByID(ID string) (Person, error)

func (*MemoryDatabase) MakeIDs

func (y *MemoryDatabase) MakeIDs(f func(p Person, d Database) error) error

func (*MemoryDatabase) ParseYamlFile

func (y *MemoryDatabase) ParseYamlFile(filename string) error

func (*MemoryDatabase) WriteYamlFile

func (y *MemoryDatabase) WriteYamlFile(filename string) error

type Name

type Name struct {
	Title string   `yaml:"title,omitempty"`
	First []string `yaml:"first,omitempty"`
	// If the used first name is different from the first element in the .First slice, it can be set using .Used
	Used  string `yaml:"used,omitempty"`
	Last  string `yaml:"last,omitempty"`
	Birth string `yaml:"birth,omitempty"`
	Alias string `yaml:"alias,omitempty"`
	Nick  string `yaml:"nick,omitempty"`
}

func (Name) Empty

func (n Name) Empty() bool

func (Name) FormatFull

func (n Name) FormatFull() string

FormatFull displays the full name, firstname before lastname

func (Name) FormatFullInverse

func (n Name) FormatFullInverse() string

FormatFullInverse displays the full name, lastname before firstname

func (Name) FormatFullNoMiddle

func (n Name) FormatFullNoMiddle() string

FormatFullNoMiddle displays the full name, firstname before lastname, withotu middlename(s)

func (Name) GetUsedFirst

func (n Name) GetUsedFirst() string

GetUsedFirst returns the used name if it is given, the first of the first names otherwise

type NodeType

type NodeType int
ENUM(

g = 1 p c

const (
	// NodeTypeG is a NodeType of type G
	NodeTypeG NodeType = iota + 1
	// NodeTypeP is a NodeType of type P
	NodeTypeP
	// NodeTypeC is a NodeType of type C
	NodeTypeC
)

func ParseNodeType

func ParseNodeType(name string) (NodeType, error)

ParseNodeType attempts to convert a string to a NodeType

func (NodeType) String

func (x NodeType) String() string

String implements the Stringer interface.

type Person

type Person interface {
	SetID(id string)
	GetID() string
	GetUUID() string
	GetGender() Gender
	MatchesIDUUID(idUUIDSearches ...string) bool
	MatchesSearch(search string) bool
	GetChildNumber() int
	GetName() Name
	GetBirth() DatePlace
	GetBaptism() DatePlace
	GetDeath() DatePlace
	// GetDeathAge returns the age in years at the given point of time. -1 iff the age can't be determined.
	GetAge(now time.Time) int
	// GetDeathAge returns the age in years when the person died. -1 iff the age can't be determined.
	GetDeathAge() int
	GetBurial() DatePlace
	// GetChildren returns all children of this person
	GetChildren() (PersonList, error)
	GetMom() (Person, error)
	GetDad() (Person, error)
	GetRelationships() []Relationship
	// GetPartners returns the list partners that are known for this person
	// A partner is a person that
	// - has been married with this person for any given moment in the past
	// OR
	// - had at least one child with this partner for any given moment in the past
	GetPartners() (PersonList, error)
	// GetChildrenWith returns the list of children of this person with a given partner
	GetChildrenWith(partner Person) (PersonList, error)
	// GetChildrenParents returns the list partners that person has children with (possibly including `nil` iff there is children where no other parent is known)
	GetChildrenParents() (PersonList, error)
	GetAttributes() []string
	AddAttribute(attr string)
	GetImageFilename() string
	SetImageFilename(filename string)
	GetFloruit() string
	GetJobs() string
	SetJobs(jobs string)
	GetComment() string
	SetComment(comment string)
	IsDummy() bool
}

Person interface

type PersonList

type PersonList struct {
	// contains filtered or unexported fields
}

PersonList is a model for collection of persons

func NewPersonList

func NewPersonList(database Database) PersonList

func NewPersonListByIDs

func NewPersonListByIDs(database Database, IDs []string) (PersonList, error)

func (*PersonList) AddList

func (p *PersonList) AddList(personList *PersonList) *PersonList

func (*PersonList) AddPerson

func (p *PersonList) AddPerson(person Person) *PersonList

func (*PersonList) Count

func (p *PersonList) Count() int

func (*PersonList) GetChildren

func (p *PersonList) GetChildren() (PersonList, error)

func (*PersonList) GetPartners

func (p *PersonList) GetPartners() (PersonList, error)

func (*PersonList) GetPersons

func (p *PersonList) GetPersons() []Person

func (*PersonList) Invert

func (p *PersonList) Invert() *PersonList

func (*PersonList) RemoveDuplicates

func (p *PersonList) RemoveDuplicates() *PersonList

func (*PersonList) SortPersons

func (p *PersonList) SortPersons(sortFunc func(i, j int) bool) *PersonList

type Relationship

type Relationship interface {
	GetPartner() (Person, error)
	GetEngagement() *DatePlace
	GetMarriage() *DatePlace
	GetDivorce() *DatePlace
}

type RelativeLevel

type RelativeLevel struct {
	Index      int
	Color      LevelColor
	BoxOptions LevelBoxOptions `yaml:"box-options,omitempty"`
	Options    LevelOptions    `yaml:"options,omitempty"`
}

func (*RelativeLevel) GetBoxOptions

func (l *RelativeLevel) GetBoxOptions() LevelBoxOptions

func (*RelativeLevel) GetColor

func (l *RelativeLevel) GetColor() LevelColor

func (*RelativeLevel) GetOptions

func (l *RelativeLevel) GetOptions() LevelOptions

func (*RelativeLevel) SetBoxOptions

func (l *RelativeLevel) SetBoxOptions(lb LevelBoxOptions)

func (*RelativeLevel) SetColor

func (l *RelativeLevel) SetColor(lc LevelColor)

func (*RelativeLevel) SetOptions

func (l *RelativeLevel) SetOptions(lb LevelOptions)

type RenderPersonOptions

type RenderPersonOptions struct {
	NodeType         NodeType
	TemplateFilename string
	Date             time.Time

	// Display filter
	HideRootNodeHighlighting bool           `yaml:"hide-root-node-highlighting,omitempty"`
	LastnamePolicy           LastnamePolicy `yaml:"lastname-policy,omitempty"`

	// Output filter
	HideID          bool     `yaml:"hide-id,omitempty"`
	HideAttributes  []string `yaml:"hide-attributes,omitempty"`
	HideGender      bool     `yaml:"hide-gender,omitempty"`
	HideName        bool     `yaml:"hide-name,omitempty"`
	HideBirth       bool     `yaml:"hide-birth,omitempty"`
	ShowAge         bool     `yaml:"show-age,omitempty"`
	HideBaptism     bool     `yaml:"hide-baptism,omitempty"`
	HideDeath       bool     `yaml:"hide-death,omitempty"`
	HideDeathAge    bool     `yaml:"hide-death-age,omitempty"`
	HideBurial      bool     `yaml:"hide-burial,omitempty"`
	HideImage       bool     `yaml:"hide-image,omitempty"`
	HideJobs        bool     `yaml:"hide-jobs,omitempty"`
	HideFloruit     bool     `yaml:"hide-floruit,omitempty"`
	HideComment     bool     `yaml:"hide-comment,omitempty"`
	HideEngagement  bool     `yaml:"hide-engagement,omitempty"`
	HideMarriage    bool     `yaml:"hide-marriage,omitempty"`
	HideMarriageAge bool     `yaml:"hide-marriage-age,omitempty"`
	HideDivorce     bool     `yaml:"hide-divorce,omitempty"`

	// special filters
	HidePlaces      bool `yaml:"hide-places,omitempty"`
	HideMiddleNames bool `yaml:"hide-middle-names,omitempty"`
}

func (*RenderPersonOptions) HideAllData

func (o *RenderPersonOptions) HideAllData()

func (*RenderPersonOptions) HideImageByLevel

func (o *RenderPersonOptions) HideImageByLevel(treeOptions RenderTreeOptions, currentLevel int) *RenderPersonOptions

func (*RenderPersonOptions) SetDefaults

func (o *RenderPersonOptions) SetDefaults() *RenderPersonOptions

type RenderTreeOptions

type RenderTreeOptions struct {
	RenderPersonOptions *RenderPersonOptions `yaml:"render-person-options,omitempty"`

	TemplateFilenameTree               string `yaml:"template-filename-tree,omitempty"`
	TemplateFilenamePerson             string `yaml:"template-filename-person,omitempty"`
	TemplateFilenameParentTree         string `yaml:"template-filename-parent-tree,omitempty"`
	TemplateFilenameParentTreeHeadless string `yaml:"template-filename-parent-tree-headless,omitempty"`
	TemplateFilenameChildTree          string `yaml:"template-filename-child-tree,omitempty"`
	TemplateFilenameUnionTree          string `yaml:"template-filename-union-tree,omitempty"`

	FailForIDLookup bool

	GraphType GraphType

	GenderOrder GenderOrder

	// levels
	Levels []AbsoluteLevel `yaml:"-"`

	// Limits
	IgnoreIDs                    []string `yaml:"ignore,omitempty"`
	MaxParentGenerations         int      `yaml:"max-parent-generations,omitempty"`
	MaxParentSiblingsGenerations int      `yaml:"max-parent-siblings-generations,omitempty"`
	MaxChildGenerations          int      `yaml:"max-child-generations,omitempty"`
	MaxChildPartnersGenerations  int      `yaml:"max-child-partners-generations,omitempty"`
	MinImageLevel                *int     `yaml:"min-image-level,omitempty"`
	MaxImageLevel                *int     `yaml:"max-image-level,omitempty"`

	HideFamilyIDs bool `yaml:"-"`
}

func (*RenderTreeOptions) SetDefaults

func (o *RenderTreeOptions) SetDefaults() *RenderTreeOptions

type YamlDatabase

type YamlDatabase struct {
	Persons        []*FlatPerson `yaml:",omitempty"`
	Sources        []Source      `yaml:",omitempty"`
	DefaultSources []Reference   `yaml:"default-sources,omitempty"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL