Module:Sandbox/28bytes/acm

From blackwiki
< Module:Sandbox
Revision as of 07:43, 8 December 2018 by blackwiki>28bytes (module test)
Jump to navigation Jump to search

gettitle

This function accepts an article title and formats it with quotes or italics as specified (useful for songs, albums and books.) It can also optionally add a "Did you know" indicator and/or Good Article indicator following the article title.

Arguments

  1. Formatting specifiers, in any order:
    • q to display the title excluding the disambiguator (if any) in quotes
    • t to display the title excluding the disambiguator (if any) in italics
    • ? to display this symbol after the article title: Symbol question.svg
    • G to display this symbol after the article title: Symbol support vote.svg
    • o to display ‹› after the article title
  2. Article title excluding the disamiguator (required)
  3. Disambiguator (optional)

Usage examples

For a song title with a parenthetical disambiguator that should not be in quotation marks:

{{#invoke:Sandbox/28bytes/acm|gettitle|?q|Cinema|(Yes song)}}
displays "Cinema" (Yes song)

For a song title with a parenthetical that should be in quotation marks, as it is part of the title:

{{#invoke:Sandbox/28bytes/acm|gettitle|?q|I.G.Y. (What a Beautiful World)}}
displays Lua error at line 18: attempt to concatenate local 'disam' (a nil value).

For an album title without a parenthetical disambiguator:

{{#invoke:Sandbox/28bytes/acm|gettitle|?Gt|Move Like This}}
displays Lua error at line 18: attempt to concatenate local 'disam' (a nil value).

local p = {};

p.gettitle = function( frame )
	
	local c = {};
	local base = frame.args[2];
	local disam = frame.args[3];
	
	if mw.ustring.find(frame.args[1],"q") ~= 0 then
		c = "\"";
	elseif mw.ustring.find(frame.args[1],"t") ~= 0 then
		c = "''";
	end
	
	if disam == {} then
		return c .. "[[" .. base .. "]]" .. c;
	else
		return "[[" .. base .. " " .. disam .. "|" .. c .. base .. c ..  " " .. disam .. "]]";
	end
		
end

return p