Module:Ref

From Halopedia, the Halo wiki

vde
Lua Module Documentation

This module provides the backend implementations of the Ref templates.

Public Functions

ref.ref

Invocation entry point for Template:Ref. Takes arguments Id, Name, Group and Text from the template parser frame and constructs the appropriate reference.

Parameters:

  • frame (object) - The current parser frame

Returns:

wikitext - the constructed reference

ref.list

Invocation entry point for Template:Ref/List. Takes argument Group from the template parser frame and constructs the appropriate reference list.

Parameters:

  • frame (object) - The current parser frame

Returns:

wikitext - the constructed reference list

ref.generic

Invocation entry point for Template:Ref/Generic.

Parameters:

  • frame (object) - The current parser frame

Returns:

wikitext - the constructed reference

ref.game

Invocation entry point for Template:Ref/Game.

Parameters:

  • frame (object) - The current parser frame

Returns:

wikitext - the constructed reference

ref.file

Invocation entry point for Template:Ref/File.

Parameters:

  • frame (object) - The current parser frame

Returns:

wikitext - the constructed reference


Private Functions

makeRef

Constructs a reference with the given text, using the provided parser frame, ref id and group.

Parameters:

  • frame (object) - The current parser frame
  • id (string) - The id to give to the reference
  • group (string) - The group to include the reference in
  • text (string) - The text of the reference

Returns:

wikitext - the constructed reference

makeStandardRef

Constructs a standard format reference using the given parameters, with the provided content. Content table supports unlimited numeric arguments, in addition to Subheading, Detail, Quote, Quotee and Suffix arguments.

Parameters:

  • frame (object) - The current parser frame
  • id (string) - The id to give to the reference
  • group (string) - The group to include the reference in
  • content (table) - The content of the reference

Returns:

wikitext - the constructed reference

makeRefText

Generates the text content of a standard format reference from the provided arguments. Content table supports unlimited numeric arguments, in addition to subheading, detail, quote, quotee and suffix arguments.

Parameters:

  • content (table) - The content of the reference

Returns:

wikitext - the constructed reference text

makeReuse

Constructs wikitext to reuse an existing reference with the given id, in the given group.

Parameters:

  • frame (object) - The current parser frame
  • id (string) - The id to give to the reference
  • group (string) - The group to include the reference in

Returns:

wikitext - the constructed reference reuse wikitext

makeList

Constructs the list of references in a given group.

Parameters:

  • frame (object) - The current parser frame
  • group (string) - The reference group to list
  • colNum (int) - The number of columns to use in the list
  • colWidth (int) - The width list columns should be
  • colGap (int) - The size of the gap between list columns

Returns:

wikitext - the constructed reference

uniqueLink

uniqueLinkIfExists

acronym

Code

A copy of the code for this module follows:


local utils = require( 'Module:Utils' )
local arguments = require( 'Module:Arguments' )

--------------------------------------------------------------------------------
------------------------------- PRIVATE FUNCTIONS ------------------------------
--------------------------------------------------------------------------------

--[[[
Constructs a reference with the given text, using the provided parser frame, ref
id and group.

@param frame - object - The current parser frame
@param id - string - The id to give to the reference
@param group - string - The group to include the reference in
@param text - string - The text of the reference

@return wikitext - the constructed reference
]]
function makeRef( frame, id, group, text )
	if utils.empty( text ) then
		return utils.error(
			'No reference text was specified!',
			'ref',
			'Pages with empty citations' )
	end
	text = tostring( text )
	local args = {}
	if not utils.empty( id ) then
		args.name = tostring( id )
	end
	if not utils.empty( group ) then
		args.group = tostring( group )
	end
	
	return frame:extensionTag( 'ref', text, args )
end

--[[[
Constructs a standard format reference using the given parameters, with the
provided content. Content table supports unlimited numeric arguments, in
addition to Subheading, Detail, Quote, Quotee and Suffix arguments.

@param frame - object - The current parser frame
@param id - string - The id to give to the reference
@param group - string - The group to include the reference in
@param content - table - The content of the reference

@return wikitext - the constructed reference
]]
function makeStandardRef( frame, id, group, content )
	local text = makeRefText( content )
	return makeRef( frame, id, group, text )
end

--[[[
Generates the text content of a standard format reference from the provided
arguments. Content table supports unlimited numeric arguments, in
addition to subheading, detail, quote, quotee and suffix arguments.

@param content - table - The content of the reference

@return wikitext - the constructed reference text
]]
function makeRefText( content )
	local text = "''" .. tostring( content[ 1 ] or '' ) .. "''"
	if not utils.empty( content.subheading ) then
		text = text .. ': ' .. tostring( content.subheading )
	end
	content[ 1 ] = ''
	for i, v in ipairs( content or {} ) do
		if not utils.empty( v ) then
			text = text .. ', ' .. tostring( v )
		end
	end
	if not utils.empty( content.detail ) or not utils.empty( content.quote ) then
		text = text .. ':'
		if not utils.empty( content.detail ) then
			text = text .. ' ' .. tostring( content.detail )
		end
		if not utils.empty( content.quote ) then
			text = text .. " ''\"" .. tostring( content.quote )<