Extension:Genealogy

The Genealogy extension adds a parser function that makes it easy to link between genealogical articles. Basically, for any biographical article which links to other family members, the reverse link on those other articles can be created automatically.

You can experiment with it on Toolforge.

Installation
Note that you also need to install the, , or extension if you want to use the tree-drawing feature.

Install with Composer
The easiest way to install this extension is with Composer. Add this to your  file:

Then run.

After that, you can enable the extension by adding the following to your LocalSettings.php file:

Usage
This extension creates one parser function:. Its first first parameter is unnamed (i.e. doesn't have an equals sign) but all others are.

The following parameters are supported, three for defining data (♦) and four for reporting data (♦):


 * 1) ♦ Define and output a link to a parent:


 * 1) ♦ Define a partner (no output produced; use  to list):

A page's description is a date range or short phrase that will appear in places next to page titles to give them some more context. For example, under people's names in the tree output.
 * 1) ♦ Define a page's description (see below for what that means):
 * 1) ♦ List all siblings:

Where  optionally excludes the current page from the resulting list.
 * 1) ♦ List all partners:


 * 1) ♦ List all children:

where each  is a newline-separated list of page titles, and   is 'graphviz' or 'mermaid' (not case sensitive). This requires the, , or extension.
 * 1) ♦ Display a tree (a connected graph):

Templates
Example: For an example template that makes use of these parser functions, see person_template.wikitext.

Preload: When this extension creates a link to a page that doesn't yet exist, the text of is preloaded. The location of this preload text can be customised by modifying the system message.

Person list-item: Three types of lists of people can be generated:, , and. The default behaviour is a simple bulleted list, but this can be overridden by a template, (the template name is specified by the system message). For example, to get a comma-separated one-line list of people, the following template code could be used:

There are six parameters that are available for use in the list-item template:
 * — A wikitext link.
 * — The full page title, including namespace.
 * — The page name, without namespace.
 * — The page description.
 * — The index of this list-item in the full list, starting from 1.
 * — The total number of items in the full list.

Development
This extension was built by Sam Wilson and released under version 3 of the GPL (see for details).

Please report all bugs to the #Genealogy project on Phabricator.