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.

It is a work in progress, but what has been completed so far is relatively stable, and is in production on at least one website.

Installation
Note that you also need to install the GraphViz 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 this 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, two 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):


 * 1) List all siblings:


 * 1) List all partners:


 * 1) List all children:


 * 1) Display a tree (a connected graph):

where each  is a newline-separated list of page titles. This requires the GraphViz extension.

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

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 four parameters that are available for use in the list-item template:
 * — A wikitext link.
 * — The page title.
 * — 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 via Phabricator: https://phabricator.wikimedia.org/