Extension:Genealogy
Genealogy Release status: stable |
|
---|---|
Implementation | Parser function |
Description | Adds a parser function for easier linking between genealogical articles. |
Author(s) | Sam Wilson (samwilsontalk) |
Latest version | 2.4.0 (2023-03-09) |
Compatibility policy | Master maintains backward compatibility. |
MediaWiki | >= 1.39 |
Database changes | No |
Composer | samwilson/mediawiki-extensions-genealogy |
License | GNU General Public License 3.0 or later |
Download | README.md |
Example | Demo wiki on Toolforge |
Quarterly downloads | 10 (Ranked 126th) |
Translate the Genealogy extension if it is available at translatewiki.net | |
Issues | Open tasks · Report a bug |
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
editNote that you also need to install the Mermaid or Diagrams extension if you want to use the tree-drawing feature.
Install with Composer
editThe easiest way to install this extension is with Composer. Add this to your composer.local.json
file:
{
"require": {
"samwilson/mediawiki-extensions-genealogy": "^2.0"
}
}
Then run composer update
.
After that, you can enable the extension by adding the following to your LocalSettings.php file:
wfLoadExtension( 'Genealogy' );
Normal installation method
edit- Download and move the extracted
Genealogy
folder to yourextensions/
directory.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Genealogy - Add the following code at the bottom of your LocalSettings.php file:
wfLoadExtension( 'Genealogy' );
- Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
Usage
editThis extension creates one parser function: {{#genealogy: … }}
.
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 (♦):
- ♦ Define and output a link to a parent:
{{#genealogy:parent|Page Name Here}}
- ♦ Define a partner (no output produced; use
partners
to list):{{#genealogy:partner|Page Name Here}}
- ♦ Define a page's description (see below for what that means):
{{#genealogy:description|Some description}}
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. - ♦ List all siblings:
{{#genealogy:siblings|exclude_self=yes}}
Whereexclude_self
optionally excludes the current page from the resulting list. - ♦ List all partners:
{{#genealogy:partners}}
- ♦ List all children:
{{#genealogy:children}}
- ♦ Display a tree (a connected graph):
{{#genealogy:tree|ancestors=List|descendants=List|delimiter=char|format=formatname}}
where eachList
is adelimiter
-separated list of page titles, andformatname
is 'graphviz' or 'mermaid' (not case sensitive). This requires the Mermaid , GraphViz , or Diagrams extension. The delimiter is a newline by default (i.e. each page title should appear on it's own line).
Templates
editExample: 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 [[Template:Person/preload]]
is preloaded.
The location of this preload text can be customised
by modifying the genealogy-person-preload
system message.
Person list-item:
Three types of lists of people can be generated: siblings
, partners
, and children
.
The default behaviour is a simple bulleted list,
but this can be overridden by a template, Template:Person/list-item
(the template name is specified by the genealogy-person-list-item
system message).
For example, to get a comma-separated one-line list of people, the following template code could be used:
{{{link}}}{{#if: {{{description|}}} | ({{{description}}}) }}{{#ifeq:{{{index}}}|{{{count}}}|.|,}}
There are six parameters that are available for use in the list-item template:
link
— A wikitext link.title
— The full page title, including namespace.pagename
— The page name, without namespace.description
— The page description.index
— The index of this list-item in the full list, starting from 1.count
— The total number of items in the full list.
Development
editThis extension was built by Sam Wilson and released under version 3 of the GPL (see LICENSE.txt for details).
Please report all bugs to the #Genealogy project on Phabricator.
See also
editThis extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |