Module:Cite Print/TemplateData

From Zelda Wiki, the Zelda encyclopedia
Jump to navigation Jump to search

This data is used to auto-generate documentation and validate input for templates backed by Module:Cite Print.


local p = {}

local Language = require("Module:Language")

local params = {
	translation = {
		type = "content",
		desc = "A translation of <code>quote</code> if the quote is not in English.",
		trim = true,
		nilIfEmpty = true,
	},
	romanization = {
		type = "string",
		desc = "Romanization of <code>quote</code> if the quote is not written in the Latin alphabet. This is primarily intended for term references and can be omitted when quoting entire sentences.",
		trim = true,
		nilIfEmpty = true,
	},
	page = {
		desc = "The cited page(s).",
		type = "string",
		required = CATEGORY_MISSING_PAGE,
		trim = true,
		nilIfEmpty = true,
	},
}

p = {
	["Cite Book"] = {
		format = "inline",
		paramOrder = {"quote", "character", "book", "publisher", "lang", "edition", "volume", "issue", "page"},
		boilerplate = {
			tabs = {
				{
					label = "Fiction",
					desc = "For citing manga, comics, novels, and other works of fiction.",
					params = {"quote", "book", "character", "publisher", "page"},
				},
				{
					label = "Nonfiction",
					desc = "For citing books such as {{E}}.",
					params = {"quote", "book", "publisher", "page"},
				},
				{
					label = "Nonfiction (Alternative Language)",
					desc = "For citing books such as {{E}} in other languages.",
					params = {"quote", "book", "lang", "page"},
				},
				{
					label = "All Parameters",
					params = {"quote", "character", "book", "publisher", "lang", "edition", "volume", "issue", "page"},
				},
			},
		},
		params = {
			quote = {
				desc = "The quote to cite.",
				type = "content",
				trim = true,
				nilIfEmpty = true,
			},
			character = {
				desc = "The name of the character speaking the quote. Use this for works of fiction such as manga, comics, and gamebooks.",
				type = "string",
				trim = true,
				nilIfEmpty = true,
			},
			book = {
				desc = "<p>The code for a book entry at [[Data:Franchise]].</p><p>To cite a book that is not licensed by Nintendo and therefore not defined in Data:Franchise, write the name of the book ''with italics''. A book name without italics is considered invalid if it is not in Data:Franchise.</p>",
				type = "content",
				required = true,
				trim = true,
				nilIfEmpty = true,
			},
			lang = {
				type = "string",
				desc = "A language code - used when citing books such as {{E}} in other languages. See [[Module:Cite Print/Data]] for supported languages.",
				trim = true,
				nilIfEmpty = true,
			},
			publisher = {
				desc = "<p>The publisher of the book.</p><p>Leave this empty when citing a book from [[Data:Franchise]] - the publisher will be automatically generated.</p>",
				type = "content",
				trim = true,
				nilIfEmpty = true,
			},
			edition = {
				desc = "The book's edition.",
				type = "string",
				trim = true,
				nilIfEmpty = true,
			},
			volume = {
				desc = "The volume number for the book quote, if applicable.",
				type = "string",
				trim = true,
				nilIfEmpty = true,
			},
			issue = {
				desc = "A comic issue number.",
				type = "string",
				trim = true,
				nilIfEmpty = true,
			},
			page = params.page
		},
	},
	["Cite Guide"] = {
		format = "inline",
		paramOrder = {"quote", "game", "guide", "page", "edition", "year", "romanization", "translation"},
		boilerplate = {
			hiddenParams = {"romanization", "translation"},
			tabs = {
				{
					label = "Guide",
					params = {"quote", "game", "guide", "page"},
				},
				{
					label = "Guide Edition",
					params = {"quote", "game", "guide", "page", "edition", "year"},
				},
			},
		},
		params = {
			quote = {
				desc = "The quote to cite.",
				type = "content",
				trim = true,
				nilIfEmpty = true,
			},
			translation = params.translation,
			romanization = params.romanization,
			game = {
				desc = "The game abbreviation associated with the guide. See [[Template:Guide#Supported Guides]].",
				type = "string",
				required = true,
				trim = true,
				nilIfEmpty = true,
			},
			guide = {
				aliases = {"publisher"},
				desc = "The guide abbreviation. See [[Template:Guide#Supported Guides]]. This parameter was formerly named <code>publisher</code>.",
				type = "string",
				required = true,
				trim = true,
				nilIfEmpty = true,
			},
			page = params.page,
			edition = {
				desc = "The edition of the guide.",
				type = "string",
				trim = true,
				nilIfEmpty = true,
			},
			year = {
				desc = "The year of release of the magazine edition.",
				type = "string",
				trim = true,
				nilIfEmpty = true,
			},
		},
		examples = {
			{
				quote = "",
				game = "TLoZ",
				guide = "Nintendo",
				page = "5",
			},
			{
				quote = "",
				game = "TLoZ",
				guide = "NES Game Atlas",
				page = "5",
			},
			{
				quote = "This is a quote.",
				game = "TWWHD",
				guide = "Prima",
				page = "5",
				edition = "Premiere Edition",
				year = "2011",
			},
			{
				desc = "The <code>publisher</code> parameter was renamed to <code>guide</code> but the former is still supported.",
				args = {
					quote = "",
					game = "ALttP",
					publisher = "Nintendo",
					page = "5",
				},
			},
			{
				desc = "Error handling",
				args = {
					quote = "",
					game = "OoT3D",
					guide = "invalid guide",
					page = "",
				},
			},
			{
				quote = "",
				game = "OoT",
				guide = "",
				page = "5",
			},
			{
				quote = "",
				game = "",
				guide = "",
				page = "5",
			}
		},
	},
	["Cite Magazine"] = {
		purpose = "Citing [[:Category:Magazines|magazines]] according to [[Guidelines:References]].",
		format = "inline",
		paramOrder = {"quote", "translation", "romanization", "interviewee", "magazine", "publisher", "volume", "issue", "date", "page", "url"},
		boilerplate = {
			hiddenParams = {"translation", "romanization"},
			tabs = {
				{
					label = "Magazine",
					params = {"quote", "magazine", "publisher", "volume", "issue", "date", "page", "url"},
				},
				{
					label = "Magazine Interview",
					params = {"quote", "magazine", "interviewee", "publisher", "volume", "issue", "date", "page", "url"},
				}
			},	
		},
		params = {
			quote = {
				desc = "The quote to cite.",
				type = "content",
				trim = true,
				nilIfEmpty = true,
			},
			translation = params.translation,
			romanization = params.romanization,
			interviewee = {
				desc = "If <code>quote</code> is an answer from an inteview, enter the interviewee's name.",
				type = "string",
				trim = true,
				nilIfEmpty= true,
			},
			magazine = {
				desc = "<p>The name of the magazine. Use a magazine name supported by [[Template:Magazine]].</p><p>To cite a magazine that is not licensed by Nintendo and therefore not supported by Template:Magazine, write the name of the magazine ''with italics''. A magazine name without formatting is considered invalid if it is not supported by Template:Magazine.</p>",
				type = "content",
				required = true,
				trim = true,
				nilIfEmpty = true,
			},
			publisher = {
				desc = "<p>The publisher of the magazine.</p><p>Leave this empty if citing a magazine supported by [[Template:Magazine]].</p>",
				type = "content",
				trim = true,
				nilIfEmpty = true,
			},
			date = {
				desc = "The {{Wp|cover date}} of the cited magazine issue.",
				type = "string",
				required = true,
				trim = true,
				nilIfEmpty = true,
			},
			volume = {
				desc = "The volume number of the cited magazine issue.",
				type = "string",
				trim = true,
				nilIfEmpty = true,
			},
			issue = {
				desc = "The issue number of the cited magazine issue.",
				type = "string",
				trim = true,
				nilIfEmpty = true,
			},
			url = {
				desc = "An archive.org URL where the magazine can be read. Use the URL specifically for the cited page.",
				type = "string",
				trim = true,
				nilIfEmpty = true,
			},
			page = params.page,
		},
		examples = {
			{
				quote = "If you distract its attention and sneak up, you might be able to ride it.",
				magazine = "Nintendo Magazine",
				publisher = "",
				date = "Winter 2021",
				volume = "",
				issue = "",
				url = "https://archive.org/details/nintendomagazine-2021winter-english/16.jpg",
				page = "16",
			},
			{
				quote = "",
				magazine = "Nintendo Power",
				publisher = "",
				date = "July/August 1988",
				volume = "",
				issue = "1",
				url = "https://archive.org/details/nintendo_power_issue1/page/n25",
				page = "26",
			},
			{
				quote = "",
				magazine = "Nintendo Fun Club News",
				publisher = "",
				date = "Fall 1987",
				volume = "1",
				issue = "3",
				url = "https://archive.org/details/NintendoFunClubMagazines/Nintendo%20Fun%20Club%20News%20Issue%203%20%28Fall%201987%29/page/n7",
				page = "8",
			},
			{
				quote = "I have already talked to Mr. Miyamoto about this so I am comfortable releasing this information--this title [Skyward Sword] takes place before Ocarina of Time.",
				magazine = "Official Nintendo Magazine",
				date = "December 2010",
				issue = "62",
				page = "51",
				interviewee = "Eiji Aonuma",
			},
			{
				desc = "To cite a magazine not licensed by Nintendo, write the magazine name with italics.",
				args = {
					quote = "Out: 10/05",
					magazine = "''CD-i Magazine''",
					publisher = "Haymarket Publishing",
					date = "April 1996",
					volume = " ",
					issue = "17",
					url = "https://archive.org/details/cdi-uk-17",
					page = "12",
				},
			},
			{
				desc = "Citing a magazine written in another language",
				args = {
					quote = "Ga verder naar het volgende level en dood de Jawbees.",
					translation = "Continue to the next level and kill the Jawbees.",
					magazine = "CD Interactief",
					volume = "2",
					issue = "11",
					date = "November 1995",
					publisher = "HUB Uitgevers",
					page = "30",
				},
			},
			{
				desc = "Error handling",
				args = {
					magazine = "invalid magazine",
					date = "October 2022",
					page = "",
				}
			},
			{
				magazine = "",
			},
		}
	},
	["Cite Manual"] = {
		format = "inline",
		paramOrder = {"quote", "translation", "romanization", "game", "product", "lang", "version", "page"},
		boilerplate = {
			tabs = {
				{
					label = "Game Manual",
					params = {"quote", "game", "page"}, 
				},
				{
					label = "Game Version",
					params = {"quote", "game", "version", "page"},
				},
				{
					label = "Product Manual",
					params = {"quote", "product", "page"},
				},
				{
					label = "Manual Translation",
					params = {"quote", "translation", "romanization", "game", "lang", "page"}
				},
			},
		},
		params = {
			quote = {
				desc = "The quote to cite.",
				type = "content",
				trim = true,
				nilIfEmpty = true,
			},
			translation = params.translation,
			romanization = params.romanization,
			game = {
				desc = "The game abbreviation associated with the manual. See [[Data:Franchise]] for supported games.",
				type = "string",
				trim = true,
				nilIfEmpty = true,
			},
			lang = {
				type = "string",
				enum = Language.enum(),
				desc = "<p>A language code identifying the game localization cited in <code>quote</code>, if the quote is not from the North American localization.</p><p>Can also be omitted when citing a British localization, but only if that is the only English localization (e.g. {{FPTRR}}).",
				trim = true,
				nilIfEmpty = true,
			},
			product = {
				desc = "Used instead of <code>game</code> to cite the manual of a product not defined at Data:Franchise - a console manual, for example.",
				type = "string",
				trim = true,
				nilIfEmpty = true,
			},
			version = {
				desc = "Used to specify a specific port or game mode of the game, if applicable.",
				type = "string",
				trim = true,
				nilIfEmpty = true,
			},
			page = {
				desc = "The cited page or pages (format: 54 or 34-36).",
				type = "string",
				required = CATEGORY_MISSING_PAGE,
				trim = true,
				nilIfEmpty = true,
			},
		},
	},
}

return p