Citation Master

From TNG_Wiki
Jump to: navigation, search
Citation Master
Summary Customize the format and content of citations (individual pages) and sources (browsing page).
Mod Updated 22 Dec 2017
Download link v11.1.2.7
TNG 11.1.2

TNG 11.1

TNG 11.0

TNG 10.1.0

v10.1.0.3a *
TNG 10.1.0

v10.0.2.7 **
TNG 10.0.2

TNG 9.2.2

Download stats
Author(s) Bill Herndon
Homepage Citation Master
Mod Support Citation Master support.
Contact Developer Email me.
Latest Mod v11.1.2.7 for TNG 11.1.2
v11.1.0.7 for TNG 11.1.0+
v11.0.0.7 for TNG 11.0.0+
v10.1.0.7 for TNG 10.1.0+
v10.1.0.3a for TNG 10.1.0 and 10.1.1 with Responsive Tables
v10.0.2.7 for TNG 10.0.2+
v9.2.2.3 for TNG 9.2.2+
Min TNG V 9.2.2
Max TNG V 11.1.2
Files modified
Related Mods
** No testing has been performed against TNGs 10.0.0 or 10.0.1, but it's likely that version is compatible.


Have you ever wanted to to display your citations and sources in a bibliographic format--something more in line with contemporary publishing standards? Do you have lots of custom source tags or do you use source tags that aren't supported directly in the tng_sources table (...and consequently don't get displayed)? Then Citation Master can help by allowing you to define the format and content of citations.


Bill Herndon


  • A working TNG installation (9.2.2 - 11.1.1)
  • An installed current version of the Mod Manager


  • Download the .zip file to your mods directory and unpack it.
  • Install the mod using the Mod Manager.
  • Set the active Citation Master configuration file using the Mod Manager's parameter feature.


General Instructions

  • Disable the mod using the Mod Manager.
  • If you've customized one of the Citation Master configuration files, back it up by saving it under a different filename or moving it out of the mods directory.
  • Install the new version of the mod.
  • Restore any copies of modified configuration files.
  • Enable the mod using the Mod Manager.
  • Use the Mod Manager's parameter feature to set the active configuration file.

Upgrading to or

This release makes some changes to Citation Master configuration files that are not backwards compatible. If you're using a pre-10.X.Y.4 config file, you'll need to edit that file and replace each instance of egenea_source_fmt with citem_format_spec.


Citation Master supports changing the format and typeface of a source field, punctuation that surrounds a source field, the separator that follows a source field, and the punctuation that follows complete sources and citations. Using these features, TNG users can build source and citation styles based on common standards such as the Chicago Manual of Style (CMoS), IEEE, or American Psychological Association (APA) style. Specifically, Citation Master supports:

  • Defining the fields, order, typeface, surrounding punctuation, and separators that go into a displayed citation or source
  • Creating different sets of format instructions for different sources (e.g., Census vs. Will)
  • Override TNG's default formatting behavior for individual citations and sources.


Four typefaces are supported: plain, bold, italic, and uline (i.e., underline).


Five types of surrounding punctuation are supported: parens (i.e., parenthesis), quotes, brackets (i.e., square brackets), braces (i.e., curly braces), and angles (i.e., angle brackets).


The supported field separators are: space, comma, colon, period, semi (i.e., semi-colon), and dash. With the exception of dashes, that have spaces both before and after, all other punctuation marks have a single appended space.


Date fields can be formatted by using the standard PHP notation defined here. For example the string "F j, Y" instructs Citation Master to format a date field in the form: "January 1, 2017".


Citation Master is configured using a file of PHP "instructions" that define how different types of citations are formatted. Four example configuration files are supplied in the distribution (location: mods/cite_master/config):

  • citem_config_cmos.php - This is the default configuration file and provides a style that conforms to the Chicago Manual of Style book format.
  • citem_config_ieee.php - This configuration file provides a default style that conforms to the IEEE book format.
  • citem_config_example.php - This configuration file provides examples of how to write format instructions and then how to assign these to a source specification. It also contains examples of almost every feature and option supported by Citation Master.
  • citem_config_lhgen.php - This is the author's own configuration file, used for site Lindell-Herndon Genealogy. This file useful for demonstrating the power of Citation Master.

Configuration files consist of sets of formatting instructions (one set per unique format) and source specifications that associate formatting instructions with source types.

Formatting Instructions

These are PHP arrays that associate GEDCOM tags with format instructions. In addition to any custom source events in your TNG database, Citation Master supports all of standard source fields using the following mapping of GEDCOM tags to TNG source fields:

  • TITL: Long Title
  • TTLS: Short Title
  • AUTH: Author
  • PUBL: Publisher
  • REPO: Repository
  • TEXT: Actual Text
  • CALN: Call number

In addition, for citations, these six additional fields are supported:

  • PAGE: Page
  • NOTE: Notes
  • QUAY: Quality (TNG refers this as "Reliability")
  • _CDSC: Description
  • _CTXT: Actual text
  • _CDTE: Date (this is a TNG date field that requires a date format specification)

So for example, an instruction that associates the typeface italic with source titles and adds a comma after the title would look like:

 $book_format_inst = array(
   'TITL' => array(
     'typeface' => 'italic',
     'separator' => 'comma'
   'PUBL' => array(
     'typeface' => 'plain',
     'surround' => 'parens',
     'separator' => 'space'
   '_CDTE' => array(
     'format' => 'F j, Y',
     'surround' => 'angles',
     'separator' => 'comma'

This instruction set also formats the publisher (PUBL) field, displaying it with a plain typeface, surrounded by parenthesis, and followed by a space (the format used by the Chicago Manual of Style). The date field is also formatted using the format string 'F j, Y', placed in angle brackets, and followed by a comma.

Source Specifications

These are elements of a single PHP array that define source types (such as 'Census') and identify the format instructions that get applied. Source type names are usually specific to the genealogy program you use for your data and how that program exports that data to GEDCOM. My software, Reunion for Macintosh, uses names like 'Census', 'Will', and 'Compilation'. Yours will almost certainly do something different.

The following is an example of a source specification for type 'Book':

 $citem_format_spec['Book'] = array(
     'name' => ,
     'comment' => 'Citation Master format for type Book (IEEE style).',
     'context' => 'all',
     'trailer" => 'period',
     'tags' => $book_format_inst

This specifications associates the format instructions contained in $book_format_inst with the source type Book and instructs Citation Master to add a period after all such sources.

A _default specification must exist in the configuration file to handle any source types that don't have their own specifications. Don't delete it.


Citation Master has three parameters set in the Mod Manager interface:

  • $citem_type_tag - This parameter defines the custom event in TNG's database that holds a source type (e.g., Census). Many genealogy programs export the source type using the GEDCOM tag TYPE. Only change this value if your program uses a different GEDCOM tag. To find out what your software uses, examine one of your sources in TNG and look at the "Other Events". The source type filed will appear as one of these events. (You may also need to examine your custom events to determine the tag name.)
  • $citem_config_path - This is the location, relative to the root of your TNG installation, of your active Citation Master configuration file. The default for this parameter is mods/cite_master/config/citem_config_cmos.php.
  • $citem_use_short - When set to yes, this parameter instructs Citation Master to substitute Short Titles for Titles whenever the latter is empty. The default is no.

Mod Compatibility

  • The Responsive Tables series of mods make an incompatible modification to the header row of the sources table in browsesources.php. Citation Master v10.1.0.3a corrects this by removing it's own modification to that header row, with the downside that the table titles no longer reflect the content of the columns. v10.1.0.3a is recommended for any TNG users having both Citation Master and Responsive Tables installed. Otherwise, for full functionality, Citation Master v10.1.0.3 is recommended. Note that testing has only verified the installation compatibility of Citation Master and Responsive Tables, along with the preservation of Citation Master's functionality. The developer does not have the facilities necessary to test Responsive Tables' functionality.

Notes and Caveats

  • The format instructions and source specifications are valid PHP code. So if you make a mistake you'll probably encounter a syntax error when PHP attempts to render your page.
  • Multiple typeface instructions are supported per source tag. (See the 'Examples' for the syntax of such an instruction.)
  • No instruction is ever required. There is always a default behavior.
  • Instruction order is important. Do you want your comma inside your quoted title? Then your separator instruction should come before your surround instruction.
  • You must have a source specification named _default. If no other specification matches the source type, this specification is used.
  • For TNG v10.0.2 Citation Master does not attempt to preserve intra-citation hyperlinks (a new feature).



The following is an example from the source browsing page on Lindell-Herndon Genealogy:
(The format approximates the IEEE citation style):


The next image depicts citations on a individual's page:


The admin interface is available on the Format tab of the Admin Sources page:


Frequently Asked Questions

Q: Why GEDCOM tags?

A: It was the only real way to level the playing field between all types of genealogy software while, at the same time, dealing with the fact that TNG stores some information in the sources table (I assign the expected GEDCOM tags to these pieces of data) and some data as custom events. It also helps me deal with the fact that genealogists sometimes define their own tags. For example, I use a custom "EREF" tag that stands for "endnote reference" (a shorthand that I use to refer to sources in notes and for naming source files). I have one of these assigned to every source in my database and wanted them printed on the browsesource.php and individual pages. TNG, of course, has no idea what this source field is because from it's perspective it's just a custom source event.

Q: Can you tell me more about the custom events that identify sources?

A: Most genealogy software, like Reunion (my software), assigns a GEDCOM tag to the type of a source (e.g., "census", "compilation, "vital record", etc...), and that shows up in TNG as a custom event when your source get imported. Citation Master needs to find the field that corresponds to your source type in the database in order to decide which of your format instruction sets to use. So, for my software, there is a custom event in the TNG database with tag "TYPE" and value "Vital Record". Citation Master finds that custom event for a particular citation, then looks up a set of format instructions for sources of type Vital Record.

Q: What happens if one of my source fields, one that I specified format instructions for, is empty or missing?

A: Don't worry about it. Citation Master treats an empty or missing source field as it simply doesn't exist in the output. In other words, data, surrounds and separators are simply omitted.

Q: What if I don't import source information but define it in TNG? In other words, TNG is my primary genealogy database.

A: This is tricky because it means that there may be no custom event to define your source type names, and unless you create such an event...for each won't be able to define different format instructions for different source types. I don't have a good solution for this, but the default type, '_default', will still work for your sources. You'll just have to do your best to make sure it works for all your sources.

Q: Where are the admin interfaces so I don't have to deal with all this PHP configuration stuff?

A:  :-) All in good time.

Revision History

Version Release Date Comments 22 Dec 2017 Minor correction for TNG 11.1.2 compatibility. 9 Feb 2017 Compatible with TNG 11.1 and includes all the mod's version 7 functionality. In addition adds support for moving the extensions directory (a TNG 11.0.2 feature). This update is recommended for users of TNG 11.1 but earlier versions may work.,, 9 Feb 2017 Adds support for three additional citation fields, _CDSC (database field 'description'), _CTXT (field 'citetext') and _CDTE (field 'citedate'). Also adds a new formatting option, 'format' which can be used with date fields stored in the DB or in custom events. (See the documentation and examples.) Version will be the last update to this mod for TNG 10.0. This update is optional for TNG 10 and TNG 11.0 users. 21 Mar 2016 Now compatible with TNG 11.0., 14 Feb 2016 Adds support for TNG's short source titles (see the revised documentation) and a new parameter that instructs Citation Master to substitute short titles for long titles when the latter are empty. Disambiguates some duplicate function code to support compatibility with the Regroup Person Profile series and other similar mods. v10.1.0.6 and v10.0.2.6 are recommended for all Citation Master users. 19 Jul 2015 Now compatible with TNG 10.1.2. v10.1.0.5 is backwards compatible patch that is compatible with all TNG releases from 10.1.0 forward, but it is only required for r10.1.2., 15 Jul 2015 Adds an administrator interface that supports creation and editing of Citation Master configuration files. A new example config has been added to the distribution, and help is integrated into the admin interface. The source display page now has a profile field that shows how the source is formatted. This update is recommended for all users of TNG versions 10.0.2+ and 10.1.0+. For the moment, users of TNG 9.2.2 should continue to use v9.2.2.3. If you're interested in an update of Citation Master for TNG 9.2.2, please contact me. If there is enough interest, I'll consider a backport. Otherwise, v9.2.2.3 will be the last Citation Master release for TNG 9.2.2., 5 Jul 2015 Release updated on 15 July to correct a bug in the cite-master library that would force use of the '_default' configuration regardless of the source type. 15 Jun 2015 A variant of v10.1.0.3 that supports Responsive Tables. 8 Feb 2015 Updated for compatibility with TNG 10.1.0. (Thanks to Roger Mitchell for the initial patch set and testing.), 6 Dec 2014 Adds support for switching configuration files as a Mod Manager variable. This allows users to keep multiple configuration files for different purposes and makes the process of customizing Citation Master's configuration a bit less cumbersome. (Note that the Mod Manager has no way of moving your custom configuration to the 'extensions' directory or even identifying a custom configuration. Keeping track of the location and name of a custom configuration is up to the user.) Also corrected an issue that caused errors with page header generation in some installations of TNG 10.0.3. This update is recommended for all users of TNG version 10.0.1 and later and is optional for users of TNG 9.2.2. 29 Nov 2014 Now supporting functionality from v10.0.2.2. 19 Nov 2014 Adds support for PDF reports as well as support for the page, description, and quality citation fields. This updated is recommended for all TNG users of TNG v10.0.2 and above due to improvements in the way that source and citation queries are executed against the TNG database. N/A Version skipped to align version numbers across TNG release. 24 Aug 2014 Updated for compatibility with TNG 10.0.2. 17 Aug 2014 Now supporting multiple typeface instructions per tag. (See the examples for additional information.) The custom event tag that represents source type can now be set as a Mod parameter. 09 Aug 2014 Initial release.

Sites Using Citation Master

If you download and install this mod, please add your TNG site to the table below.

URL User Note Mod-Version TNG-Version
Lindell-Herndon Genealogy Bill Herndon Mod developer 11.1.2
Mitchell Families Online Roger Mitchell Great update Bill. Lots of work gone into this! 11.0.0
Hooley Family Links Rick Hooley Public Site 11.0.2
The Pettit Forest Robert Pettit 11.0.1
Our Family Histories Bryan Larson 11.0.2
Kystslekts Slektsider Roar Dahle Public site 11.0.0
Roy~Royes Family Links Bruce Roy 11.1.1
DiFava/Brandt Family Tree Larry DiFava 11.1.1
Farrar’s Island Heritage Randy Farrar 11.0.2
Feldman and Related Families Fred Feldman Public site 11.1.1
Feldman Family Trees Fred Feldman Public site 11.1.1
Thacker Family Forest Fred Feldman Public site 11.1.1
Rosemeyer Family Forest Fred Feldman Public site 11.1.1
Vest Family Trees Fred Feldman Public site 11.1.1
Old Roots, New Branches Margie Bailey 11.0.2
Stamboom Jongman Roel Jongman Public/Private site 11.1.1
Dusty Bits from Our Past (unknown) Public site 11.1.2
Lake Champlain and How We Got Here (McCaffrey) Matt McCaffrey Public site 11.1.2
Heather's History Heather Feuerhelm Public site 11.1.1
Genealogy of the Weir and Drain Families Beverley Stimpson Public Site 11.1.2
Gambrill Family tree Bobby Gambrill Public site 11.1.2
Our Family History (unknown) Public site 11.1.1
Cole / Tanner Family Tree David Cole Private Site 11.1.2
Bill & Lynn Desjardin's Genealogy Pages Bill Desjardin Use guest for user and password 11.1.2
Genealogie van de families Visscher en Schuurman Wietze Visscher Public site 11.1.2
Our Roy and Boucher Family Ken Roy Public site - very nice source citation using Kate Turabian system learned in college 11.1.2