The wiki has moved!

Visit the new wiki at stationeers-wiki.com The old wiki here at legacy.stationeers-wiki.com will sunset eventually.

Edits made after the 7th of March 6PM EST were NOT carried over to the new server as previously announced right here in this box.

 Actions

Module

Difference between revisions of "Parameters"

From Unofficial Stationeers Wiki

(Support for |_template=)
(Wikilist)
Line 27: Line 27:
  
 
function p._list(args)
 
function p._list(args)
local list = require('Module:List').bulleted
+
local parameters = extractParams(args)
return list(extractParams(args))
+
for k, v in pairs(parameters) do
 +
parameters[k] = string.format('* %s\n', v)
 +
end
 +
return table.concat(parameters)
 
end
 
end
  

Revision as of 10:48, 5 June 2015


-- This module implements [[Template:Parameters]].
-- [SublimeLinter luacheck-globals:mw]

local p = {}

local function makeInvokeFunction(funcName)
	return function(frame)
		local getArgs = require('Module:Arguments').getArgs
		return p[funcName](getArgs(frame))
	end
end

local function extractParams(args)
	local removeDuplicates = require('Module:TableTools').removeDuplicates

	local parameters = {}
	for parameter in string.gmatch(args.base, '{{{(.-)%f[}|<>]') do
		table.insert(parameters, parameter)
	end
	return removeDuplicates(parameters)
end

function p._demo(args)
	return string.format('{{Parameter names example|_template=%s|%s}}',
		args._base or '', table.concat(extractParams(args), '|'))
end

function p._list(args)
	local parameters = extractParams(args)
	for k, v in pairs(parameters) do
		parameters[k] = string.format('* %s\n', v)
	end
	return table.concat(parameters)
end

p.demo = makeInvokeFunction('_demo')
p.list = makeInvokeFunction('_list')

return p