Template:Cite plimsoll/doc

This template is a wrapper template around intended to cite information from Lloyd's Register in the period 1930–1945 available as individual page scans at the Southampton City Council website.

This template depends on the filename that is the last portion of the Lloyd's Register url. For example, given this url:

the filename is:

The format of the filename is:   where:
 * – least significant two digits of four-digit first year in a two-year range
 * 34 → translated by the template to 1934–1935 for date
 * allowed values are all integers between and including 30–45
 * – volume; a single lowercase letter 'a' or 'b' where:
 * 'a' → translated by the template to I for volume
 * 'b' → translated by the template to II for volume
 * - scan number begins with 0001; 0000 not allowed

Usage
This template:
 * supports all of the parameters
 * requires one parameter filename which is the last bit after the last  in the url Plimsoll url
 * calculates the value for date from filename
 * supports unique parameters (all of these are optional):
 * ship-name – the name of the ship as listed in the register
 * lr-number – the Numero d'Ordre or 'No. in Book' number from the leftmost column – not available on 'List of Vessels Fitted with Refrigerating Appliances' (Liste des Navires Pourvus de Machines Frigorifiques) scans
 * guide – guidewords from the upper corner of the page in lieu of page numbers
 * subtitle – this parameter takes a keyword (1–3 uppercase-characters) that represents the subtitle. If the value assigned to subtitle is not a keyword, that value is used as the subtitle.  There are several common 'subtitles' used in currently existing LR citations.  Known subtitles, with their associated keywords, are:
 * → Chalutiers &c.
 * → Liste des Navires Pourvus de Machines Frigorifiques
 * → Navires a Voiles
 * → Navires a Vapeur et a Moteurs
 * → List of Vessels Fitted with Refrigerating Appliances
 * → Steamers & Motorships
 * → Sailing Vessels
 * → Trawlers &c.

Example of a fully populated template:

minimal implementation:

there is also crude error handling: