Module:Template invocation: Difference between revisions

add a p.name function to find the template name, use checkType with p.invocation, and add some function description comments
(escape the equals sign as well)
(add a p.name function to find the template name, use checkType with p.invocation, and add some function description comments)
Line 1:
-- This module makes a template invocation from a template name and a table
-- of arguments.
 
local checkType = require('libraryUtil').checkType
 
local p = {}
 
------------------------------------------------------------------------
-- Name: p.name
-- Purpose: Find a template invocation name from a page name or a
-- mw.title object.
-- Description: This function detects whether a string or a mw.title
-- object has been passed in, and uses that to find a
-- template name as it is used in template invocations.
-- Parameters: title - full page name or mw.title obejct for the
-- template (string or mw.title object)
-- Returns: String
------------------------------------------------------------------------
 
function p.name(title)
if type(title) == 'string' then
title = mw.title.new(title)
if not title then
error("invalid title in parameter #1 of function 'name'", 2)
end
elseif type(title) ~= 'table' or type(title.getContent) ~= 'function' then
error("parameter #1 of function 'name' must be a string or a mw.title object", 2)
end
if title.namespace == 10 then
return title.text
elseif title.namespace == 0 then
return ':' .. title.prefixedText
else
return title.prefixedText
end
end
 
------------------------------------------------------------------------
-- Name: p.invocation
-- Purpose: Construct a MediaWiki template invocation.
-- Description: This function makes a template invocation from the
-- name and the arguments given. Note that it isn't
-- perfect: we have no way of knowing what whitespace was
-- in the original invocation, the order of the parameters
-- may be changed, and any parameters with duplicate keys
-- will be removed.
-- Parameters: name - the template name, formatted as it will appear
-- in the invocation. (string)
-- args - a table of template arguments. (table)
-- format - formatting options. (string, optional)
-- Set to "nowiki" to escape, curly braces, pipes and
-- equals signs with their HTML entities. The default
-- is unescaped.
-- Returns: String
------------------------------------------------------------------------
 
function p.invocation(name, args, format)
checkType('invocation', 1, name, 'string')
checkType('invocation', 2, args, 'table')
checkType('invocation', 3, format, 'string', true)
 
-- Copy the invocation args and convert magic words.
-- We need to make a copy of the table rather than just using the original,