The GED2HTML Output Language

The output language in GED2HTML versions 3.0 and later is a simple programming language that is similar in many respects to the programming language supported by the Unix command shell. The print statement is the basic method of creating output. Besides this, the language supports standard conditional and iteration constructs, procedure definitions with parameters, integer and string variables, and assignment statements. These other constructs basically exist in order to make it possible to specify the desired order of execution of print statements.

Warning! The description of the output language given below is a fairly brief summary which is more or less in typical programming language manual style. I expect it to be understandable to a programmer, if not by itself then in conjunction with study of the standard output program, and possibly also some experimentation with the language. I have not made any sort of serious attempt to make it understandable to a non-programmer, nor am I likely to do so in the future.

Contents:

Lexical Elements

The following are the basic lexical elements of a GED2HTML program:

Variables, Types and Values

The GED2HTML output language supports variables that take on typed values. The types of values supported by the language are listed below. Roughly, they comprise basic values (integers and strings), and values that correspond to various kinds of records and substructures defined in the GEDCOM 5.5 specification, except that in a number of cases I have attempted to "uniformize" these structures to simplify the logic of the output program necessary for traversing them. Values that correspond to GEDCOM records generally have various attributes or component values, that can be selected. These are described in more detail below.

Each variable is either global, or else it is local to a particular procedure. Whether a variable is local as opposed to global depends on whether the procedure currently being executed contains a local declaration for that particular variable at the beginning of the procedure. The values of local variables persist only as long as the activation of the procedure in which they were declared. The value of a global variable persists either until GED2HTML exits, or else a new value is assigned to that variable.

Some global variables are special, in the sense that they are connected to the internal processing of GED2HTML. Certain special variables have the property that reading their value returns certain information about the current state of GED2HTML. Other special variables have the propery that assignments to them modifies certain parameters that control the processing of GED2HTML. Nearly all the GED2HTML processing options can be set by assigning to one of these special variables. For a list of all the special variables and their meanings, see here.

An attempt to access a variable that is not special and has never been assigned a value will yield a particular default value, usually corresponding to 0 or "false". Except during the options initialization phases that occur before GEDCOM processing starts, an attempt to assign a value to a global variable that does not already exist will elicit a warning message from the GED2HTML output interpreter. Usually this situation would occur if there was a missing local declaration for the indicated variable.

Syntactic Elements

Definitions

A GED2HTML output program consists of a sequence of definitions of procedures. Each definition is of the form:
define <identifier> <formals> <locals> { <statements> }
The <identifier> gives the name of the procedure being defined. The <formals> is a space-separated list of identifiers that name the formal parameters of the procedure. The <locals> is a declaration of the local variables of the procedure, and it has the following form:
local id1 id2 id3 ... idn

Statements

The GED2HTML output language supports the following types of statements:
Empty statement:
A blank can appear whereever a statement is syntactically required. Executing the empty statement has no effect.

Call statement:
A call statement has the form:
<identifier> <actuals> ;
The <identifer> is the name of the procedure to be called. The <actuals> is a space-separated list of "atomic" expressions (any expression can be made into an atomic expression by enclosing it in parentheses). Executing a call statement causes the actual parameter expressions to be evaluated, and then the named procedure is invoked with the resulting values as the actual parameters.

Print statement:
A print statement has the form:
print <expressions> ;
or the form
print <expressions> ,
The <expressions> are a space-separated list of "atomic" expressions (any expression can be made into an atomic expression by enclosing it in parentheses). To execute a print statement, the expressions are evaluated, and the resulting values are output into the currently active output file, without any intervening spaces in the output. In the first form of the print statement, which ends with a semicolon, a newline is printed after the values of all the expressions have been printed. In the second form, no newline is printed.

Debug statement:
The debug statement is identical in form to the print statement. The only difference between the two is that the the debug statement uses the keyword debug, and output from the debug statement is printed on the console (standard error), instead of the the current output file, as is the case with the print statement.

Assignment statement:
The assignment statement has the form:
set <identifier> to <expression>
Execution of an assignment statement proceeds by first evaluating the <expression>, and then assigning the resulting value to the variable <identifier>.

Deftag statement:
The deftag statement has the form:
deftag <identifier> <expression>
where <id> is a GEDCOM 5.5 tag (such as INDI or BIRT) and <expr> is an expression that evaluates to a string. The effect is that the default print name for the specified GEDCOM tag (such as "Individual" or "Birth") is replaced by the new string. This construct can be used by the end user to customize the GEDCOM tag names that get printed out with events; for example, if the user does not agree with the particular default translation of the tag name in a particular language.

If statement:
The if statement has one of the forms:
if <expression> then <statements> end
if <expression> then <statements> else <statements>end
if <expression> then <statements>
elseif <expression> then <statements>
elseif <expression> then <statements>
...
else <statements> end
An if statement is executed by first evaluating the <expression> and interpreting the result as either "true" or "false". How the result of evaluation is interpreted depends on the type of value produced. If the value is an integer value, then a value of 0 is interpreted as "false" and a nonzero value is interpreted as "true". If the value is a string value, then a null value, or an empty string, is interpreted as "false", and other values are interpreted as true. If the value is any other type of value, then a null value is interpreted as "false" and a non-null value is interpreted as "true".

The truth value of the initial expression is used to control which of the alternatives is executed, in the usual way.

While statement:
The while statement has the form:
while <expression> do <statements> end
This statement is executed as follows: the <expression> and interpreting it as either "true" or "false" as in the case of the if statement. If the expression evaluates to "true", the <statements> are executed and the whole process repeats. If the expression evaluates to "false", execution of the statement terminates.

For statement:
The for statement has the form:
for <identifier> in <expression> do <statements> end
Execution proceeds as follows. First, the <expression> is evaluated. If the resulting value is null, then the statement terminates immediately. Otherwise, the value is assigned to the control variable <identifier> and the <statements> are executed. Upon completion, the qualifier "next" is applied to the value of the control variable from the preceding iteration. If the resulting value is non-null, then it is assigned to the control variable, the <statements> are executed, etc. Execution terminates when application of the "next" qualifier to the previous value of the control variable yields a null value.

Include statement:
The include statement has the form:
include <expression>
The expression is evaluated. The resulting value, which must be a string value, is interpreted as the name of a file. The file is opened, and its contents are inserted into the current output stream. If the file does not exist or cannot be opened, an error message is generated.

Expressions

The GED2HTML output language supports the following kinds of expressions:
Numerals:
A numeral, standing by itself, is an expression, which evaluates to the integer represented by the numeral.

Strings:
A string constant, standing by itself, is an expression, which evaluates to the corresponding string value.

Variables:
A variable, standing by itself, is an expression. Variables can be either simple variables, which are single identifiers, or can have a more elaborate structure, explained below.

Parenthesized expression:
An expression enclosed in parentheses is also an expression. Parentheses are used to indicate grouping in the usual way.

Negated expression:
An expression preceded by a minus sign is also an expression, which evaluates to the negative of the value to which the constituent expression evaluates.

Not expression:
An expression preceded by a tilde (~) is also an expression, which evaluates to a truth value which is the logical negation of the truth value to which the constituent expression evaluates.

Plus expression:
If E1 and E2 are expressions, then E1 + E2 is also an expression. If E1 evaluates to integer value v1 and E2 evaluates to integer value v2, then E1 + E2 evaluates to the integer value v1 + v2, otherwise an error occurs.

Minus expression:
If E1 and E2 are expressions, then E1 - E2 is also an expression. If E1 evaluates to integer value v1 and E2 evaluates to integer value v2, then E1 - E2 evaluates to the integer value v1 - v2, otherwise an error occurs.

Times expression:
If E1 and E2 are expressions, then E1 * E2 is also an expression. If E1 evaluates to integer value v1 and E2 evaluates to integer value v2, then E1 * E2 evaluates to the integer value v1 * v2, otherwise an error occurs.

Quotient expression:
If E1 and E2 are expressions, then E1 / E2 is also an expression. If E1 evaluates to integer value v1 and E2 evaluates to integer value v2, then E1 / E2 evaluates to the integer value v1 / v2, otherwise an error occurs.

Remainder expression:
If E1 and E2 are expressions, then E1 % E2 is also an expression. If E1 evaluates to integer value v1 and E2 evaluates to integer value v2, then E1 % E2 evaluates to the remainder of dividing v1 by v2, otherwise an error occurs.

AND expression:
If E1 and E2 are expressions, then E1 & E2 is also an expression. If E1 evaluates to a truth value v1 and E2 evaluates to a truth value v2, then E1 & E2 evaluates to the logical conjunction of v1 and V2, otherwise an error occurs.

OR expression:
If E1 and E2 are expressions, then E1 / E2 is also an expression. If E1 evaluates to a truth value v1 and E2 evaluates to a truth value v2, then E1 | E2 evaluates to the logical disjunction of v1 and V2, otherwise an error occurs.

Concatenation expression:
If E1 and E2 are expressions, then E1 ^ E2 is also an expression. If E1 evaluates to a string value v1 and E2 evaluates to a string value v2, then E1 ^ E2 evaluates to the string value which is the concatenation of v1 and v2, otherwise an error occurs.

Equality test:
If E1 and E2 are expressions, then E1 = E2 is also an expression, which evaluates to "true" if E1 and E2 evaluate to equal values, and to "false" if E1 and E2 evalute to unequal values.

Comparison test:
If E1 and E2 are expressions, then E1 < E2, E1 > E2, E1 <= E2, and E1 >= E2 are also expressions which which evaluates to "true" if the indicated relationship holds between the value of E1 and that of E2.

Variables

The following kinds of variables are supported:
Simple variables:
An identifier, standing by itself, is a variable, which evaluates to the most recent value assigned to that variable. If no value has yet been assigned to the variable, an error occurs.

Qualified variables:
A qualified variable is a variable, followed by a dot (.), followed by a qualifier, which is an identifier. The qualifier serves to select a particular attribute or component of the current value of the variable to which it is attached. For example, if i is a simple variable whose current value is an individual, then
i.mother
is a qualified variable whose value is the individual who is the mother of the individual denoted by i. Furthermore,
i.mother.name
evaluates to the name of the mother. Qualifier names are not sensitive to upper/lower-case distinctions. Thus
i.mother
and
i.MOTHER
mean the same thing.

Whether the application of a particular qualifier to a variable v is meaningful depends on the current value of v at the time the qualified variable is evaluated. For a list of all the currently supported qualifiers together with the types of values to which they apply, see here.

Subscripted variables:
A subscripted variable is a variable followed by an expression enclosed in square brackets. Evaluation of a subscripted variable proceeds first by evaluating the subscript (the expression within the brackets). If the subscript does not evaluate to an integer, then an error occurs. Otherwise, the variable to which the subscript is attached is evaluated, and then the "next" qualifier is repeatedly applied to the resulting value a number of times equal to the value of the subscript expression.

As a simple example, the subscripted variable

i[3]
can be regarded as an abbreviation for the qualified variable
i.next.next.next

Entry Points

The output program is used by GED2HTML in the following way: each time GED2HTML wants to initialize options or create a particular output file, it begins executing the output program by invoking a particular entry procedure corresponding to the type of file that is to be created. Output produced by print statements during the execution of that entry procedure and any procedures that it calls, goes to the particular file being created. GED2HTML assumes that the following entry procedures are defined in any output program program:
do_initialize
This entry procedure is called just prior to processing the GEDCOM file. It can be used to initialize or modify the settings of options variables. For a detailed description of how GED2HTML options processing works, see here for the Windows version and here for the Unix version.

do_index
This entry procedure is called to create the contents of a single file in the index of persons. The procedure takes a single argument, which is an index value corresponding to the first index entry to be output. Subsequent entries to be output to the same file can be accessed by repeatedly applying the "next" qualifier, until a null value is obtained.

Each index entry can be either a leaf entry, which references a single individual, or a range entry, which references a range of individuals. Whether the entry is a leaf entry or a range entry can be determined by applying the "children" qualifier to the index node. If node is a leaf entry, then applying the "children" qualifier yields a null value, and if the node is a range entry, then apply the "children" qualifier yields a nonnull value. For a leaf entry, the referenced individual can be obtained by applying the "first" qualifier to the entry. For a range entry, the first and last individual in the specified range can be obtained by applying the "first" and "last" qualifiers, respectively, to the entry.

do_surnames
This entry procedure is called to create the contents of a single file in the index of surnames. The procedure takes a single argument, which is an index value corresponding to the first index entry to be output. Subsequent entries to be output to the same file can be accessed by repeatedly applying the "next" qualifier, until a null value is obtained.

Each index entry can be either a leaf entry, which references a single surname, or a range entry, which references a range of surnames. Whether the entry is a leaf entry or a range entry can be determined by applying the "children" qualifier to the index node. If node is a leaf entry, then applying the "children" qualifier yields a null value, and if the node is a range entry, then apply the "children" qualifier yields a nonnull value. For a leaf entry, the referenced surname can be obtained by applying the "first" qualifier to the entry. For a range entry, the first and last surname in the specified range can be obtained by applying the "first" and "last" qualifiers, respectively, to the entry.

do_individuals
This entry procedure is called to create the contents of an individual data file. The procedure takes a single argument, which is the first individual for which information is to be output into the file. Subsequent individuals to be output to the same file can be accessed in succession by repeatedly applying the "next" qualifier. When application of the "next" qualifier results in a null value, the end of the list of individuals has been reached.

do_families
This entry procedure is called to create the contents of a family data file. The procedure takes a single argument, which is the first family for which information is to be output into the file. Subsequent families to be output to the same file can be accessed in succession by repeatedly applying the "next" qualifier. When application of the "next" qualifier results in a null value, the end of the list of families has been reached.

do_sources
This entry procedure is called to create the contents of a sources file. The procedure takes a single argument, which is the first source for which information is to be output into the file. Subsequent sources to be output to the same file can be accessed in succession by repeatedly applying the "next" qualifier. When application of the "next" qualifier results in a null value, the end of the list of sources has been reached.

do_notes
This entry procedure is called to create the contents of a notes file. The procedure takes a single argument, which is the first note for which information is to be output into the file. Subsequent notes to be output to the same file can be accessed in succession by repeatedly applying the "next" qualifier. When application of the "next" qualifier results in a null value, the end of the list of notes has been reached.

do_gendex
This entry procedure is called to create the contents of a "gendex.txt" file. The procedure takes a single argument, which is the first individual for which an index entry is to be output. Subsequent individuals can be accessed in succession by repeatedly applying the "next" qualifier. When application of the "next" qualifier results in a null value, the end of the list of individuals has been reached.

List of all Types and Associated Qualifiers

The following list gives all of the types of values supported by the GED2HTML output interpreter, and the set of qualifiers that it is meaningful to apply to each type of value. For the most part, applying a qualifier to a value corresponds to selecting a particular substructure of a given structure, as described in the GEDCOM 5.5 specification, so if there is a question about the meaning of a particular qualifier, the GEDCOM 5.5 specification should be consulted for clarification.
Integer values:
No qualifiers can be applied to integer values.

String values:
first
Yields a string obtained by breaking the given string into "words" delimited by space characters, and extracting the first such word.

next
Yields a string obtained by deleting the first space-delimited word from the given string.

upper
Yields a string value obtained by converting the given string to upper case. The conversion is dependent on the particular locale that has been selected at the time the conversion is performed. NOTE: Locales are not supported by GED2HTML running under Windows 3.1.

lower
Yields a string value obtained by converting the giving string to lower case. The conversion is dependent on the particular locale that has been selected at the time the conversion is performed. NOTE: Locales are not supported by GED2HTML running under Windows 3.1.

exists
The current value of the string is treated as a filename, and it is determined whether a file of the specified name actually exists. If so, then the result is non-null, otherwise the result is null.

Individual values:
Individual values correspond to individual records in the GEDCOM file.

name
Yields a name value containing the name of the individual.

names
Yields a name value which is the head of a list of names associated with the individual. Names after the first can be accessed from the first by repeatedly applying the "next" qualifier.

surname
Yields a string value representing the surname of the individual.

birth
Yields an event value representing the event of birth of the individual.

death
Yields an event value representing the event of death of the individual.

christening
Yields an event value representing the event of christening of the individual.

burial
Yields an event value representing the event of burial of the individual.

attributes
Yields an attribute value which is the head of a list of attributes associated with this individual. Attributes after the first can be accessed from the first by repeatedly applying the "next" qualifier.

ordinances
Yields an ordinance value which is the head of a list of LDS ordinances associated with this individual. Ordinances after the first can be accessed from the first by repeatedly applying the "next" qualifier.

events
Yields an event value which is the head of a list of events associated with this individual. Events after the first can be accessed from the first by repeatedly applying the "next" qualifier.

families
Yields a family value which is the head of a list of families in which this individual was a child. Families after the first can be accessed from the first by repeatedly applying the "next" qualifier.

mother
Yields an individual value corresponding to the WIFE in the first family in which this individual was a child.

father
Yields an individual value corresponding to the HUSB in the first family in which this individual was a child.

marriages
Yields a family value which is the head of a list of families in which this individual was a spouse. Families after the first can be accessed from the first by repeatedly applying the "next" qualifier.

submitters
Yields a submitter value which is the head of a list of submitters of information pertaining to this individual. Submitters after the first can be accessed from the first by repeatedly applying the "next" qualifier.

associations
This qualifier is not yet fully implemented.

aliases
Yields an individual value which is the head of a list of individuals thought to be the same person as the current individual. Aliases after the first can be accessed from the first by repeatedly applying the "next" qualifier.

anci
Yields a submitter value which is the head of a list of submitters who have an interest in the ancestors of the current individual. Submitters after the first can be accessed from the first by repeatedly applying the "next" qualifier.

desi
Yields a submitter value which is the head of a list of submitters who have an interest in the descendants of the current individual. Submitters after the first can be accessed from the first by repeatedly applying the "next" qualifier.

sources
Yields a source citation value which is the head of a list of source citations associated with this individual. Citations after the first can be accessed from the first by repeatedly applying the "next" qualifier.

objects
Yields a multimedia value which is the head of a list of multimedia objects associated with this individual. Objects after the first can be accessed from the first by repeatedly applying the "next" qualifier. Multimedia objects are not completely supported in this version of GED2HTML.

notes
Yields a note value which is the head of a list of notes associated with this individual. Notes after the first can be accessed from the first by repeatedly applying the "next" qualifier.

rfn
Yields an attribute value corresponding to the RFN (if any) of the individual.

rfn
Yields an attribute value corresponding to the permanent Record File Number (if any) of the individual.

afn
Yields an attribute value corresponding to the LDS Ancestral File Number (if any) of the individual.

refns
Yields a REFN value corresponding to the head of a list of user Reference Number structures associated with the individual. Additional REFN substructures can be accessed by repeatedly applying the "next" qualifier.

rin
Yields an attribute value corresponding to the automated record ID for this individual.

ismale
Yields an integer value which is nonzero if the individual is indicated as a male, and zero otherwise.

isfemale
Yields an integer value which is nonzero if the individual is indicated as a female, and zero otherwise.

living
Yields a note value which is nonnull if the individual record has a NOTE substructure that begins with !LIVING. In this case, the value is a string representing the entire NOTE.

xref
Yields a string value representing the cross-reference ID of the individual record.

title
Yields a string value representing the title of the individual, as given by the first TITL substructure.

url
Yields a string representing a URL (uniform resource locator) which, when output as part of an HTML anchor, will create a hyperlink to the individual in question.

next
Yields the next individual value in whatever list the current individual value happens to be a part of.

tagcode
Yields the string value "INDI", which is the GEDCOM tag name used for individual records.

tagname
Yields a translation of the word "Individual" into the currently selected output language.

Family values:
Family values correspond to family records in the GEDCOM file.

events
Yields an event value which is the head of a list of events associated with this family. Events after the first can be accessed from the first by repeatedly applying the "next" qualifier.

husband
Yields an individual value representing the husband in the family.

wife
Yields an individual value representing the wife in the family.

children
Yields an individual value which is the head of a list of children in this family. Children after the first can be accessed from the first by repeatedly applying the "next" qualifier.

notes
Yields a note value which is the head of a list of notes associated with this family. Notes after the first can be accessed from the first by repeatedly applying the "next" qualifier.

nchildren
Yields an attribute value which gives the number of children associated with this family.

attributes
Yields an attribute value which is the head of a list of attributes associated with this family. Attributes after the first can be accessed from the first by repeatedly applying the "next" qualifier.

ordinances
Yields an ordinance value which is the head of a list of LDS ordinances associated with this family. Ordinances after the first can be accessed from the first by repeatedly applying the "next" qualifier.

submitters
Yields a submitter value which is the head of a list of submitters of information pertaining to this family. Submitters after the first can be accessed from the first by repeatedly applying the "next" qualifier.

sources
Yields a source value which is the head of a list of sources associated with this family. Sources after the first can be accessed from the first by repeatedly applying the "next" qualifier.

refns
Yields a REFN value corresponding to the first user Reference Number structure (if any) associated with the individual. Additional REFN structures can be accessed by repeatedly applying the "next" qualifier.

rin
Yields an attribute value corresponding to the automated record ID for this family.

next
Yields the next family value in whatever list the current family value happens to be a part of.

url
Yields a string representing a URL (uniform resource locator) which, when output as part of an HTML anchor, will create a hyperlink to the family in question.

xref
Yields a string value representing the cross-reference ID of the family record.

tagcode
Yields the string value "FAM", which is the GEDCOM tag name used for family records.

tagname
Yields a translation of the word "Family" into the currently selected output language.

Submitter values:
Submitter values correspond to submitter records in the GEDCOM file.

name
Yields an attribute value giving the name of the submitter.

objects
Yields a multimedia value which is the head of a list of multimedia objects associated with this family. Objects after the first can be accessed from the first by repeatedly applying the "next" qualifier.

address
Yields an address value giving the address of the submitter.

phone
Yields an attribute value giving the phone number of the submitter.

rfn
Yields an attribute value corresponding to the permanent Record File Number (if any) of the submitter.

rin
Yields an attribute value corresponding to the automated record ID for this submitter.

refns
Yields a REFN value corresponding to the head of a list of user Reference Number structures associated with the submitter. Additional REFN substructures can be accessed by repeatedly applying the "next" qualifier.

next
Yields the next submitter value in whatever list the current submitter value happens to be a part of.

tagcode
Yields the string value "SUBM", which is the GEDCOM tag name used for submitter records.

tagname
Yields a translation of the word "Submitter" into the currently selected output language.

Note values:
Note values correspond to note records (level 0) or note structures (higher levels) in the GEDCOM file.

xref
Yields a string representing the cross-reference ID of the note record. If the note is at level 0, then this string value will be non-null. For notes at higher levels, this string value will be a null value.

serial
Yields an integer value ("serial number") that uniquely identifies the particular note record, and which can be used to create a hyperlink to the note.

url
Yields a string representing a URL (uniform resource locator) which, when output as part of an HTML anchor, will create a hyperlink to the note in question.

text
Yields a text value representing the text of the note.

sources
Yields a source citation value which is the head of a list of source citations for the note. Citations after the first can be accessed from the first by repeatedly applying the "next" qualifier.

refns
Yields a REFN value corresponding to the first REFN substructure (if any) of the note. Additional REFN substructures can be accessed by repeatedly applying the "next" qualifier.

rin
Yields an attribute value corresponding to the automated record ID for this note.

rfn
Yields an attribute value corresponding to the permanent Record File Number (if any) of the note.

next
Yields the next note value in whatever list the current note value happens to be a part of.

tagcode
Yields the string value "NOTE", which is the GEDCOM tag name used for note records.

tagname
Yields a translation of the word "Note" into the currently selected output language.

Source values:
Source values correspond to source records in the GEDCOM file.

xref
Yields a string representing the cross-reference ID of the source record.

serial
Yields an integer value ("serial number") that uniquely identifies the particular source record, and which can be used to create a hyperlink to it.

url
Yields a string representing a URL (uniform resource locator) which, when output as part of an HTML anchor, will create a hyperlink to the source in question.

data
Yields a source data value that contains information from any DATA substructure of the source record.

author
Yields a text value that contains information about the author of the source.

title
Yields a text value that contains information about the title of the source.

abbreviation
Yields an attribute value that contains a short title for the source.

publication
Yields a text value that contains publication facts for the source.

text
Yields a text value representing the source text.

repository
Yields a repository citation value indicating the repository where the source resides.

notes
Yields a note value which is the head of a list of notes associated with this source. Notes after the first can be accessed from the first by repeatedly applying the "next" qualifier.

refns
Yields a REFN value corresponding to the first REFN substructure (if any) of the source. Additional REFN substructures can be accessed by repeatedly applying the "next" qualifier.

rin
Yields an attribute value corresponding to the automated record ID for this source.

change
Yields a change information value giving information about the last change to the source record.

next
Yields the next source value in whatever list the current source value happens to be a part of.

tagcode
Yields the string value "SOUR", which is the GEDCOM tag name used for source records.

tagname
Yields a translation of the word "Source" into the currently selected output language.

Source citation values:
Source citation values correspond to source citations in the GEDCOM file.

source
Yields a source value corresonding to the cited source.

page
Yields an attribute value that contains the page number(s) from the cited source.

event
Yields an attribute value identifying the event to which the source citation pertains.

date
Yields a source data value that contains data from the cited source.

quay
Yields an attribute value describing the "quality" of the cited source.

notes
Yields a note value which is the head of a list of notes associated with this source citation. Notes after the first can be accessed from the first by repeatedly applying the "next" qualifier.

description
Yields a text value describing the cited source.

abbreviation
Yields an attribute value giving an abbreviated title of the cited source.

title
Yields an text value giving the title of the cited source.

texts
Yields a text value which is the head of a list of texts from this source. Texts after the first can be accessed from the first by repeatedly applying the "next" qualifier.

serial
Yields an integer value ("serial number") that uniquely identifies the particular citation, and which can be used to create a hyperlink to it.

next
Yields the next source value in whatever list the current source value happens to be a part of.

tagcode
Yields the string value "SOUR", which is the GEDCOM tag name used for source records.

tagname
Yields a translation of the word "Source" into the currently selected output language.

Source data values:
Source data values capture information present in a DATA substructure of a source record or source citation structure.

events
Yields an event value which is the head of a list of events associated with this source data substructure. Events after the first can be accessed from the first by repeatedly applying the "next" qualifier.

agency
Yields an attribute value giving the agency responsible for the source data.

date
Yields a date value giving the "entry recording date" for the source citation.

notes
Yields a note value which is the head of a list of notes associated with this data. Notes after the first can be accessed from the first by repeatedly applying the "next" qualifier.

texts
Yields a text value which is the head of a list of texts from this source. Texts after the first can be accessed from the first by repeatedly applying the "next" qualifier.

next
Yields the next source value in whatever list the current source value happens to be a part of.

tagcode
Yields the string value "DATA", which is the GEDCOM tag name used for source records.

tagname
Yields a translation of the word "Data" into the currently selected output language.

Repository values:
Repository values correspond to repository records in the GEDCOM file.

name
Yields an attribute value giving the name of the repository.

address
Yields an address value giving the address of the repository.

phone
Yields an attribute value giving the telephone number for the repository.

notes
Yields a note value which is the head of a list of notes associated with this repository. Notes after the first can be accessed from the first by repeatedly applying the "next" qualifier.

refns
Yields a REFN value corresponding to the first REFN substructure (if any) of the repository. Additional REFN substructures can be accessed by repeatedly applying the "next" qualifier.

rin
Yields an attribute value corresponding to the automated record ID for this repository.

change
Yields a change information value giving information about the last change to the repository record.

next
Yields the next source value in whatever list the current repository value happens to be a part of.

tagcode
Yields the string value "REPO", which is the GEDCOM tag name used for repository records.

tagname
Yields a translation of the word "Repository" into the currently selected output language.

Repository citation values:
Repository citation values correspond to source repository citation structures in the GEDCOM file.

repository
Yields a repository value indicating the repository associated with this citation.

notes
Yields a note value which is the head of a list of notes associated with this citation. Notes after the first can be accessed from the first by repeatedly applying the "next" qualifier.

caln
Yields an attribute value giving the call number associated with this citation.

serial
Yields an integer value ("serial number") that uniquely identifies the particular citation, and which can be used to create a hyperlink to it.

next
Yields the next repository citation in whatever list the current citation happens to be a part of.

tagcode
Yields the string value "REPO", which is the GEDCOM tag name used for repository citations.

tagname
Yields a translation of the word "Repository" into the currently selected output language.

Change information values:
Change information values correspond to change date structures in the GEDCOM file.

date
Yields a date value giving the date associated with this change information.

notes
Yields a note value which is the head of a list of notes associated with this change information. Notes after the first can be accessed from the first by repeatedly applying the "next" qualifier.

tagcode
Yields the string value "CHAN", which is the GEDCOM tag name used for change information.

tagname
Yields a translation of the word "Change" into the currently selected output language.

Header values:
A header value represents the information contained in the HEAD record that begins each GEDCOM transmission.

date
Yields a string value representing the date of the GEDCOM transmission.

filename
Yields a string value representing the name of the GEDCOM file, as recorded in the GEDCOM header record.

copr
Yields a string value representing the copyright notification that appears in the GEDCOM header record.

submitter
Yields a submitter value indicating the submitter that appears in the GEDCOM header record.

note
Yields a text value representing the note (if any) that appears in the GEDCOM header record.

tagcode
Yields the string value "HEAD", which is the GEDCOM tag name used for the GEDCOM header record.

tagname
Yields a translation of the word "Header" into the currently selected output language.

Multimedia values:
Multimedia values correspond to multimedia objects in the GEDCOM file. These value are not currently supported, and no qualifiers are currently defined for multimedia values.

Name values:
Name values represent names of individuals.

fullname
Yields a string value representing the full name, in a format suitable for printing.

gedcom
Yields a string value representing the full name, in GEDCOM format, with slashes delimiting the surname.

surname
Yields a string value representing the surname portion of the name.

sources
Yields a source citation value which is the head of a list of source citations for the name. Citations after the first can be accessed from the first by repeatedly applying the "next" qualifier.

notes
Yields a note value which is the head of a list of notes associated with this name. Notes after the first can be accessed from the first by repeatedly applying the "next" qualifier.

npfx
Yields a string value corresponding to the value of the NPFX field of the name structure.

givn
Yields a string value corresponding to the value of the GIVN field of the name structure.

nick
Yields a string value corresponding to the value of the NICK field of the name structure.

spfx
Yields a string value corresponding to the value of the SPFX field of the name structure.

surn
Yields a string value corresponding to the value of the SURN field of the name structure.

nsfx
Yields a string value corresponding to the value of the NSFX field of the name structure.

tagcode
Yields the string value "NAME", which is the GEDCOM tag name used for the GEDCOM header record.

tagname
Yields a translation of the word "Name" into the currently selected output language.

Attribute values:
Attribute values represent unstructured textual information associated with various GEDCOM substructures.

text
Yields a string value corresponding to the textual information contained in the attribute.

event
Yields an event value corresponding to the GEDCOM "event detail" (if any) associated with the attribute.

next
Yields an attribute value corresponding to the next attribute in whatever list the current attribute is a part of.

tagcode
Yields a string value giving the GEDCOM tag, such as "RESI", associated with this attribute.

tagname
Yields a string value that is a human-readable version of the GEDCOM tag indicating the particular type of attribute, rendered in the current output language. For example, for a RESI attribute, the tag would be "Residence" in English and "Domicile" in French.

Event values:
Event values correspond to event structures in the GEDCOM file.

text
Yields a text value that describes the event.

type
Yields a string value representing the contents of the TYPE field in the GEDCOM event record.

date
Yields a date value representing the date on which the event occurred.

place
Yields a place value representing the place at which the event occurred.

age
Yields a string value representing the contents of the AGE field in the GEDCOM event record.

agency
Yields an attribute value representing the contents of the AGNC field in the GEDCOM event record.

cause
Yields a string value representing the contents of the CAUS field in the GEDCOM event record.

sources
Yields a source value which is the head of a list of sources associated with this event. Sources after the first can be accessed from the first by repeatedly applying the "next" qualifier.

notes
Yields a note value which is the head of a list of notes associated with this event. Notes after the first can be accessed from the first by repeatedly applying the "next" qualifier.

family
Yields a family value representing the family associated with certain kinds of GEDCOM event records.

adoption
Yields a string value representing the contents of the ADOP field in the GEDCOM event record.

next
Yields the next event value in whatever list the current event value happens to be a part of.

tagcode
Yields a string value giving the GEDCOM tag, such as "BIRT", associated with this event.

tagname
Yields a string value that is a human-readable version of the GEDCOM tag indicating the particular type of event, rendered in the current output language. For example, for a BIRT event, the tag would be "Birth" in English and "Naissance" in French.

Place values:
Place values correspond to place structures in the GEDCOM file.

name
Yields a string value representing the name of the place.

tagcode
Yields the string value "PLAC", which is the GEDCOM tag name used for the GEDCOM place structure.

tagname
Yields a translation of the word "Place" into the currently selected output language.

REFN values:
REFN values represent user-defined reference numbers associated with various GEDCOM structures.

number
Yields a string value representing the reference number.

type
Yields a string value representing the reference type.

next
Yields a REFN value representing the next value in whatever list the current REFN value happens to be a part of.

tagcode
Yields the string value "REFN", which is the GEDCOM tag name used for the user reference number structure.

tagname
Yields a translation of the word "Reference" into the currently selected output language.

Text values:
Text values represent substructures consisting lines of textual data, such as are found in NOTE and SOURCE records. Text values often occur in linked lists representing an initial line and its continuations.

cont
Yields a text value representing a continuation of the current text, with an implied line break.

conc
Yields a text value representing a continuation of the current text, without any line break.

text
Yields a string value representing the line of textual data.

next
Yields the next text value in whatever list the current text value happens to be a part of.

tagcode
Yields a string value giving the GEDCOM tag, such as "AUTH", associated with this particular textual information.

tagname
Yields a string value that is a human-readable version of the GEDCOM tag indicating the particular type of textual information, rendered in the current output language. For example, for a AUTH event, the tag would be "Author" in English and "Auteur" in French.

Persons index values:
Index values do not correspond to anything in the GEDCOM standard. Rather, they are a notion introduced by GED2HTML to support the output of hierarchical indexes consisting of many interconnected "nodes", each of which covers a range of individuals. Each index value represents one node.

first
Yields an individual value corresponding to the first entry in the range covered by the current node.

last
Yields an individual value corresponding to the last entry in the range covered by the current node.

parent
Yields an index value corresponding to the index node "one level higher up" in the index.
children
Yields an index value which is the first in a list of index nodes "one level lower down" in the index. Subsequent index nodes can be accessed from the first by repeatedly applying the "next" qualifier.

succ
Yields an index value corresponding to the next node "at the same level" as the current node.

pred
Yields an index value corresponding to the previous node "at the same level" as the current node.

url
Yields a string representing a URL (uniform resource locator) which, when output as part of an HTML anchor, will create a hyperlink to the index node in question.

prev
Yields an index value corresponding to the previous node "with the same parent" as the current node.

next
Yields an index value corresponding to the next node "with the same parent" as the current node.

Surnames index values:
Surnames index values do not correspond to anything in the GEDCOM standard. Rather, they are a notion introduced by GED2HTML to support the output of hierarchical indexes of consisting of many interconnected "nodes", each of which covers a range of surnames. Each index value represents one node.

first
Yields an individual value corresponding to the first entry in the range of surnames covered by the current node.

last
Yields an individual value corresponding to the last entry in the range of surnames covered by the current node.

parent
Yields a surnames index value corresponding to the index node "one level higher up" in the index.
children
Yields a surnames index value which is the first in a list of index nodes "one level lower down" in the index. Subsequent index nodes can be accessed from the first by repeatedly applying the "next" qualifier.

succ
Yields a surnames index value corresponding to the next node "at the same level" as the current node.

pred
Yields a surnames index value corresponding to the previous node "at the same level" as the current node.

index
Yields a persons index value which is the "leaf" node of the persons index that contains the first person having with the first surname covered by the current node.

url
Yields a string representing a URL (uniform resource locator) which, when output as part of an HTML anchor, will create a hyperlink to the index node in question.

prev
Yields a surnames index value corresponding to the previous node "with the same parent" as the current node.

next
Yields a surnames index value corresponding to the next node "with the same parent" as the current node.

Ordinance values:
Ordinance values represent LDS ordinance information associated with an individual or family.

date
Yields a date value representing the date associated with the ordinance.

place
Yields a place value representing the place associated with the ordinance.

sources
Yields a source citation value which is the head of a list of citations associated with this ordinance. Citations after the first can be accessed from the first by repeatedly applying the "next" qualifier.

family
Yields the family value associated with a FAMC field in an SLGC ordinance.

status
Yields a string value giving the date status code associated with the ordinance.

temple
Yields a string value giving the temple code associated with the ordinance.

next
Yields an ordinance value representing the next value in whatever list the current ordinance value happens to be a part of.

tagcode
Yields a string value giving the GEDCOM tag, such as "SLGC", associated with this ordinance.

tagname
Yields a string value that is a human-readable version of the GEDCOM tag indicating the particular type of attribute, rendered in the current output language. For LDS ordinances, there are just two tags, SLGC, which would be rendered as "Sealing to parents" in English, and SLGS, which would be rendered as "Sealing to spouse" in English.

Address values:
Address values represent information found in a GEDCOM ADDR structure. Currently only the "address line" information in such a structure is accessible.

text
Yields a text value giving the address line text.

adr1
Yields a string value corresponding to the value of the ADR1 field of the address structure.

adr2
Yields a string value corresponding to the value of the ADR2 field of the address structure.

city
Yields a string value corresponding to the value of the CITY field of the address structure.

stae
Yields a string value corresponding to the value of the STAE field of the address structure.

post
Yields a string value corresponding to the value of the POST field of the address structure.

ctry
Yields a string value corresponding to the value of the CTRY field of the address structure.

tagcode
Yields the string value "ADDR", which is the GEDCOM tag name used for the user reference number structure.

tagname
Yields a translation of the word "Address" into the currently selected output language.

Date values:
Date values correspond to date structures in the GEDCOM file.

value
Yields a string value representing the given date in the currently selected output language.

string
Yields a string value that gives the uninterpreted date exactly as it appeared in the GEDCOM file.

exact
Yields an integer value that is nonzero if the given date is an exact date, rather than an approximate date or date range.

day
Yields an integer value identifying the day of the month selected from the given date.

month
Yields an integer value identifying the month selected from the given date.

year
Yields an integer value identifying the year selected from the given date.

tagcode
Yields the string value "ADDR", which is the GEDCOM tag name used for the user reference number structure.

tagname
Yields a translation of the word "Address" into the currently selected output language.

List of all Special Variables

The special variables understood by the GED2HTML output interpreter can be divided into two classes: read-only variables, which can be read to yield internal information about the state of GED2HTML, and read/write variables, which can be assigned to change various options settings of GED2HTML. In addition, there are several ordinary variables that are not really handled "specially" by the GED2HTML output interpreter, but rather are referenced by the standard output program to control some features that do not require special support from the output interpreter.

Note that variables are sensitive to upper/lower-case distinctions.

Read-only Variables

HEADER
Yields a header value representing the information gleaned from the HEAD record of the GEDCOM being processed.

NUMBER_OF_FAMILIES
Yields an integer value representing the number of family records contained in the GEDCOM being processed.

NUMBER_OF_SOURCES
Yields an integer value representing the number of (level 0) source records contained in the GEDCOM being processed.

NUMBER_OF_NOTES
Yields an integer value representing the number of (level 0) note records contained in the GEDCOM being processed.

OSTYPE
Yields a string value which describes the operating system that the executing version of GED2HTML was compiled for.

PATH_TO_ROOT
Yields a string value which gives the path from the output file currently being generated to the "root" of the output tree being constructed by GED2HTML. This variable can be used to construct relative URL's in the current output file that will work for any combination of output processing options.

PERSONS_URL
This variable has a string value, which is a relative URL suitable for reaching the top-level index of persons. The value of this variable is affected by the "CASE_FOLD_LINKS" option and the "FILENAME_TEMPLATE" option.

SURNAMES_URL
This variable has a string value, which is a relative URL suitable for reaching the top-level index of surnames. The value of this variable is affected by the "CASE_FOLD_LINKS" option and the "FILENAME_TEMPLATE" option.

TODAY
Yields a string value representing the date of the run.

VERSION
Yields a string value which describes the version of GED2HTML that is executing.

Read/Write Variables

CASE_FOLD_LINKS
This variable controls certain processing to be performed on the URLs output in HTML anchors (hyper-links). If the value "Lower" is is assigned to this variable, then all URLs output by GED2HTML as part of HTML anchors are converted (folded) to lower case before being output. If the value "Upper" is assigned to this variable, then all URLs are converted to upper case. If the value "None" is assigned, then no conversion of any kind is performed. The default is "None".

The reason for this feature is to accomodate the ideosyncrasies of various systems and uploading software having to do what happens to MS-DOS-style upper-case-only filenames when the files are uploaded from a Windows system to a Web service provider's system. Generally speaking, "None" is the correct initialization for this variable on a Unix system.

CHARACTER_SET
The string value assigned to this variable controls the way in which GED2HTML interprets characters in the GEDCOM file. The possible values are: "ASCII", "ANSI", "ANSEL", "IBM WINDOWS", "MS-DOS", and "IBMPC". If no explicit assignment is made to this variable, then it gets initialized from the CHAR field of the GEDCOM header when the GEDCOM is read. If this variable receives an explicit assignment, then the value in the GEDCOM header is ignored. The default is ANSI (ISO-Latin-1), in case the character set cannot otherwise be determined.

DESTINATION_DIRECTORY
A string value assigned to this variable is interpreted as the name of a directory in which the HTML files output by GED2HTML should be put.

DOS_CODE_PAGE
Assigning an integer value to this variable selects the DOS code page to be used for GEDCOM's encoded using IBMPC or MS-DOS character sets, as determined by the CHAR field in the GEDCOM header. Currently supported code pages are 437 (United States), 863 (Canadian-French), and 850 (Multilingual/Latin I). If an unrecognized value is assigned to this variable, the code page defaults to 850.

ERROR_FILE
A string value assigned to this variable is interpreted as the name of a file to be used to log any errors that occur during the processing of the GEDCOM. The default value is "g2herrs.txt".

FILENAME_TEMPLATE
A string value assigned to this variable is interpreted as a pattern to be used in constructing the names of the various HTML output files. The default is "%s.html", which indicates the name of an HTML output file is constructed by taking a base string and concatenating it with ".html".

FILES_PER_DIRECTORY
A number assigned to this variable determines the number of individual data files GED2HTML will put in a single subdirectory. The default value is 100. If 0 is assigned to this variable, then GED2HTML will not use any subdirectories. Instead, it will create a "flat" structure in which all output files reside in the same directory.

GENERATE_INDEX
Assigning a nonzero value to this variable enables the creation of the persons and surnames indexes. The default value is 1.

GENERATE_INDIVIDUALS
Assigning a nonzero value to this variable enables the creation of the data pages for individuals. The default value is 1.

GENERATE_SOURCES
Assigning a nonzero value to this variable enables the creation of the sources files. The default value is 1.

GENERATE_NOTES
Assigning a nonzero value to this variable enables the creation of the notes files. The default value is 1.

GENERATE_GENDEX
Assigning a nonzero value to this variable enables the creation "GENDEX.txt" index file, which can be used by index servers to centrally index your data so that others can find it more easily. The default value is 1.

IGNORE_NOTES
Assigning a non-zero value to this variable will cause the the program to completely ignore any notes in the input GEDCOM, other than !LIVING notes. The default value is zero.

IGNORE_SOURCES
Assigning a non-zero value to this variable will cause the the program to completely ignore any sources in the input GEDCOM. The default value is zero.

INCLUDE_IMAGE_EXT
The value assigned to this variable is a string that is automatically appended by the standard output program to the GEDCOM identifier (RIN) for an individual, to construct the name of an associated external file to be included in the HTML output. This file is inserted near the beginning of an individual page, and it is intended to be used to include an image of that person. The default value is .img.

INCLUDE_INFO_EXT
The value assigned to this variable is a string that is automatically appended by the standard output program to the GEDCOM identifier (RIN) for an individual, to construct the name of an associated external file to be included in the HTML output. This file is inserted near the end of an individual page, and it is intended to be used to include additional information about the person, external to the GEDCOM file being processed. The default value is .inc.

INCLUDE_PATH
The value assigned to this variable is a string that is automatically prepended by the standard output program to the GEDCOM identifier (RIN) for an individual, to construct the name of an associated external file to be included in the HTML output. It is intended that this variable be used to specify the name of a directory in which the files to be included can be found. The default value is the empty string, which means that the files to be included will be taken from the directory in which the current output file is being produced.

INDEX_WIDTH
The value assigned to this variable controls the maximum number of entries in each page of the hierarchical persons index. The default value is 28, which means that each index page will contain links either up to 28 individual data pages, or up to 28 "lower-level" index pages. In general, the more entries per page, the fewer "levels" of index are necessary to index a given number of individuals. Assigning 0 to this variable turns off the hierarchical index feature, causing a "flat" index to be created in which all individuals appear in a single index page.

Note that GED2HTML does not always put the maximum number of individuals in an index page. Rather, it tries to adjust the number of individuals in an index page to avoid producing lots of "widow" pages that contain very few entries. It generally succeeds at this, except that it is sometimes the case that the top-level index page has as few as two entries in it. This situation can generally be avoided by increasing the index width a bit.

INDIVIDUALS_PER_FILE
Setting this variable to an integer value determines the number of individuals GED2HTML will try to put in each of the individual data files it creates. Putting several individuals in a single file tends to save disk space on many systems. The default value is 10. To force GED2HTML to put exactly one individual per file, assign 0 to this variable.

NOTE: If "STABLE_FILENAMES" has a nonzero value (the default), then GED2HTML treats a positive value assigned to "INDIVIDUALS_PER_FILE" as a target value. It does not necessarily guarantee to put exactly the specified number of individuals in each file. If you must have exactly the specified number of individuals in each file, then initialize "STABLE_FILENAMES" to zero.

LANGUAGE
The string assigned to this variable selects the (human) language that will be used to render the names of various GEDCOM tags in the HTML output. For example, if "English" is assigned to LANGUAGE then the GEDCOM tag "BIRT" will be rendered in the output as "Birth". If, instead "French" is assigned to LANGUAGE, then the GEDCOM tag "BIRT" will be rendered as "Naissance". The currently available choices are "English", "French", "Danish", "Dutch", "German", "Italian", "Norwegian", "Swedish", "Finnish", and "Slovenian".

Setting the "LANGUAGE" variable actually has three distinct effects:

  1. Various GEDCOM tags in the input file are rendered in the HTML output according to the chosen language. For example, if "English" is chosen, then the GEDCOM tag "BIRT" will be rendered as "Birth". On the other hand, if "French" is chosen, then this tag will be rendered as "Naissance". The specific translations of the GEDCOM tags are compiled into GED2HTML and are currently not directly customizable by the user. This may change in a future version of GED2HTML.

  2. The chosen language influences the choice of certain text strings and punctuation in the HTML output. The complete list of these strings can be found in the GED2HTML output program, and can be customized by modifying this program, as described here.

  3. When you enter a language name in the "Language" field, GED2HTML also initializes the "LOCALE" variable to correspond to the chosen language. The locale affects the translation and formatting of dates that appear in the GED2HTML output, as well as the collating sequence and upper/lower case conversions for international characters. The correspondence between languages and locales is precompiled into GED2HTML. However, if you find that the preselected locale to be inappropriate, you can set the locale independently by setting the LOCALE output interpreter variable to the desired locale name. NOTE: Locales are not supported by GED2HTML running under Windows 3.1. See here for more details on variables and the output interpreter.

    For a list of all the output interpreter variables that can be initialized to select processing options, see here.

LIVING_CUTOFF_YEAR
This variable has an integer value. If nonzero, then GED2HTML presumes that all individuals born or christened during this year or a later year are living unless they also have an explicitly recorded death or burial date, or unless the variable LIVING_IGNORE_DEATH has a nonzero value. The default value is zero, which disables this feature. See here for more information on eliding information about living individuals.

LIVING_IGNORE_DEATH
This variable has an integer value. If nonzero, then GED2HTML does not automatically assume that a person is dead just because there is death or burial information. Setting this variable to a nonzero value, in combination with an appropriate setting of LIVING_CUTOFF_YEAR, can be used to suppress information about individuals born or christened since a particular date. The default value is one, which enables this feature. Setting the value of this variable to zero causes personal information to be output for persons born after LIVING_CUTOFF_YEAR, as long as there is some death or burial information for that person. See here for more information on eliding information about living individuals.

LIVING_NOTE
This variable has a string value, which is inserted as an explanatory note on data pages for individuals that have automatically been presumed to be living. Assigning to this variable changes the default text of the note. See here for more information on eliding information about living individuals.

LOCALE
The string value of this variable controls the formatting of dates, as well as the collating sequence and details of upper/lower conversion for international characters. Normally this variable does not need to be set explicitly, as it is set automatically as a result of selecting a particular output language. However, one can set this variable to override the default choice associated with the selected output language. The possible values are system dependent, and require that you have knowledge of the locales supported by your operating system. For additional related discussion, see here. NOTE: Locales are not supported by GED2HTML running under Windows 3.1.

NO_LDS_ORDINANCES
If set to a nonzero value, then the production of output corresponding to LDS ordinance information is suppressed. The default value is zero.

NOTES_PER_FILE
For GEDCOMs containing many notes records, putting all the notes in a single HTML file can produce a file that is too large to be downloaded conveniently over the Web. Assigning a nonzero value to this variable causes GED2HTML to output notes to multiple files, with the total number of notes output in any one file limited to the specified value. The default value is 0, which means put all notes in a single notes file.

NUMBER_OF_DIRECTORIES
A nonzero number assigned to this variable forces GED2HTML to use a fixed number of subdirectories to contain the individual data files. The default value is 0, which permits GED2HTML to use as many directories as it sees fit. Note that a nonzero value assigned to this variable causes any value entered in "INDIVIDUALS_PER_FILE" to be ignored, and GED2HTML will put as many individuals as necessary in each file in order to output all the individuals using the specified number of directories and files per directory.

OUTPUT_PROGRAM
A string value assigned to this variable is interpreted as the name of an alternate output program file, to be used to control the production of the HTML output files. See here for more information on output programs.

PEDIGREE_DATES
If this variable is assigned a nonzero value, then birth/death date information is placed in the pedigree charts output by the pedigree statement. The default value is 1, meaning that dates are produced.

PEDIGREE_DEPTH
The value assigned to this variable controls the number of generations of ancestors that appear in the pedigree charts output in each individual data page. The default value is 2. Assigning a value of 0 turns off the production of pedigree charts.

SOURCES_PER_FILE
For GEDCOMs containing many source records, putting all the sources in a single HTML file can produce a file that is too large to be downloaded conveniently over the Web. Assigning a nonzero value to this variable causes GED2HTML to output sources to multiple files, with the total number of sources output in any one file limited to the specified value. The default value is 0, which means put all sources in a single sources file.

STABLE_FILENAMES
Assigning a nonzero value to this variable enables a feature that causes GED2HTML to use a "hash function" to calculate the directory and file in which the data for a given individual will appear, directly from the GEDCOM identifier (RIN) for that individual. This has the advantage of making the mapping from individuals to directory/file pairs "stable" under additions to and deletions from the GEDCOM. This means that if you process your GEDCOM once, then add some new individuals to it and process your GEDCOM again, the second time all the individuals that were there the previous time end up in the exact same place in the output file as they did the first time. This feature can be advantageous for linking from external documents into the HTML tree output by GED2HTML. See here for more details. The default value is 1.

The disadvantages of using "STABLE_FILENAMES" are: (1) GED2HTML has less control over exactly how many individuals will end up in any given file; (2) the hash function randomizes the individuals so that a particular file will generally contain a number of completely unrelated individuals, rather than a group of individuals with the same surname.

SURNAME_WIDTH
For large GEDCOMs, putting all the surnames in a single surnames file can produce a file that is too large to download conveniently over the Web. Assigning a nonzero value to this variable causes GED2HTML to create a multiple-file surname index, in which the number of surnames in any given file is limited to the specified value. The default value is 0, which causes GED2HTML to put all the surnames in a single file.

UPPER_CASE_SURNAMES
Assigning a nonzero value to this variable causes all surnames to be converted into upper case as the GEDCOM is read. The default value is 1. For international characters, conversion into upper case depends on the current setting of the "LOCALE" variable.

USE_LOCAL_TIME
If this integer variable has a nonzero value, then time-of-day information appearing in the output will be with respect to the local time zone, rather than GMT (UTC). The default value is zero.

Other Variables

Besides the above special variables, there are a few other variables referenced by the default output program, which although not true special variables in the sense that the GED2HTML output interpreter has specialized support for them, nevertheless function as options flags that modify the behavior of the standard output program.

BACKGROUND_COLOR
This variable has a string value, which is inserted on each page of output as the "BGCOLOR" attribute of the HTML "<BODY>" tag. For example, setting this variable to "#ffffff" will set a white background.

BACKGROUND_IMAGE
This variable has a string value, which is inserted on each page of output as the "BACKGROUND" attribute of the HTML "<BODY>" tag. For example, setting this variable to "foo.gif" will cause the image file "foo.gif" to be used as the background image. In general, you typically would set this variable to be the full "absolute" URL of the location of the image file, for example http://www.starkeffect.com/images/foo.gif. If you don't do it this way, then you'll have to have a copy of "foo.gif" in every subdirectory created by GED2HTML, or else Web browsers will not always be able to locate the image file.

CONT_MEANS_BREAK
If this variable has a nonzero value, then notes records in the GEDCOM that are continued over several GEDCOM lines using the CONT tag will be rendered in the HTML output with a line break <BR> before each CONT line. Continuation lines that use the CONC tag are rendered without a line break. This seems to correspond to the spirit of what the GEDCOM standard has to say about the use of CONT and CONC, however the output of some genealogy programs looks ugly this way. In such cases, assigning a value of zero to this variable CONT be rendered exactly like CONC; that is, without a line break. The default value is 1.

FAMILY_GROUPS
The integer value of this variable determines whether the output will be in the "traditional" GED2HTML individual-based format, or in a newer "family group sheet" format. The default is zero, which means the traditional format is used.

HOMEPAGE
A string value assigned to this variable is interpreted as an URL, and a hyperlink to this URL is inserted into each of the output pages. The purpose is to make it easy for people to get back to your home page, no matter where in your data they are looking.

INLINE_NOTES
The integer value of this variable controls whether notes occuring at level 0 in the GEDCOM file will be placed on the same page as the individual or family that references them, or whether they will instead be placed in a separate notes files. The default value is zero, which means that the notes will be placed in a separate notes file.

INLINE_SOURCES
The integer value of this variable controls whether sources occuring at level 0 in the GEDCOM file will be placed on the same page as the individual or family that references them, or whether they will instead be placed in a separate sources files. The default value is zero, which means that the sources will be placed in a separate sources file.

LINK_COLOR
This variable has a string value, which is inserted on each page of output as the "LINK" attribute of the HTML "<BODY>" tag. For example, setting this variable to "#00ff00" will cause hyperlinks to be rendered in green.

MAILTO
A string value assigned to this variable is interpreted as an E-mail address, and an HTML "mailto:" link to this address is inserted into the "top-level" persons and surnames index pages. The purpose is to make it easy for people to contact you, no matter where in your data they are looking.

NO_ALPHABET_TABS
The integer value of this variable controls whether or not an "alphabet tab" style surnames index will be produced. The default value is zero, which means that by default, the alphabet tab style will be used for the surnames index, as long as the special variable SURNAME_WIDTH is zero. If NO_ALPHABET_TABS is nonzero, or SURNAME_WIDTH is nonzero, then the "traditional" GED2HTML format will be used instead.

OMIT_META
The integer value of this variable controls whether or not HTML "META" tags will be inserted into the output pages. META tags supply various kinds of keywords and descriptive information that can help a browser display the document, and also can help Web indexing and search engines classify the document more appropriately. The default value is 0, which means that META tags will be output.

TEXT_COLOR
This variable has a string value, which is inserted on each page of output as the "TEXT" attribute of the HTML "<BODY>" tag. For example, setting this variable to "#ff0000" will make red the default text color.

VISITED_COLOR
This variable has a string value, which is inserted on each page of output as the "VLINK" attribute of the HTML "<BODY>" tag. For example, setting this variable to "#0000ff" will caused visited hyperlinks to be rendered in blue.

GED2HTML home page

Copyright © 1997-2000 Eugene W. Stark. All rights reserved.
SEND ME EMAIL