Module:Naval Vessel Register URL/doc

Summary
This module generates links to ships in the Naval Vessel Register (nvr.navy.mil) database. Intended to be used by:

NVR have adopted a file naming convention based on a ship's hull classification symbol with an appended underscore and some number of digits. The extra digits do not seem to follow an identifiable pattern so the former rules-based system used here no longer works.

To get round the 'new' file format, this version of the module adopts a brute-force mechanism by using a local database that maps a ship's hull classification symbol to its associated NVR file name. The database is two large Lua tables maintained at Module:Naval Vessel Register URL/data.

MakeShipLink
This function returns a link to a ship's page at the Naval Vessel Register website.

Usage:
 * — uses the calling template's parameters
 * — uses the calling template's parameters

Parameters:
 * 1 or id — the ship's case-insensitive hull classification symbol in one of five forms:
 * SSBN-659 – the preferred format because it matches the format for hull classification symbols generally used for US Navy ships throughout Wikipedia
 * SSBN 659
 * SSBN659
 * SSBN_659
 * SSBN_659_1635 – the NVR file name format as of September 2017
 * There are exceptions. There are three ships listed at the NVR website that do not have hull classification symbols.  These are: USS Constitution, USS Maine (ACR-1), and USS Texas (1892).  For these three ships, use the ship's name for this parameter.  The code word OLDIRON, previously used to identify Constitution is no longer supported.
 * 2 or title — A title or label for the link.

Examples:
 * produces
 * produces
 * produces

MakeServiceCraftLink
This function returns a link to a service craft in the Naval Vessel Register.

Usage:
 * — uses the calling template's parameters
 * — uses the calling template's parameters

Parameters: Parameters:
 * 1 or id — the ship's case-insensitive hull classification symbol in one of five forms:
 * YTB-760 – the preferred format because it matches the format for hull classification symbols generally used for US Navy ships throughout Wikipedia
 * YTB 760
 * YTB760
 * YTB_760
 * YTB_760_5292 – the NVR file name format as of September 2017
 * There are exceptions. NVR has separate pages for some single and some multiple sections of some floating drydocks. For these, this module adopts a convention similarly used by NVR where each section is distinguished by a letter designator; that letter must be appended to the hull classification symbol used in this parameter; see the examples
 * 2 or title — A title or label for the link.

Examples:
 * produces
 * produces