Fara í innihald

Module:Templatedata fyrir skriftu

Úr Wikipediu, frjálsa alfræðiritinu

Þessi skrifta býr til mw:Extension:Templatedata fyrir skriftur þar sem viðbótin gerir það ekki sjálf. Skriftan tekur bara við einu gildi, nafni skriftunnar sem á að búa til TemplateData fyrir. Dæmi:

{{#invoke:Templatedata fyrir skriftu|main|Module:Clade}}

gefur, án <templatedata></templatedata> utanum:

{"params":{"code":{},"state":{},"indent":{},"reverse":{},"newick":{},"footer":{},"style":{},"footerstyle":{},"code2":{},"color":{},"option":{},"newickstring":{},"length":{},"caption":{},"list":{},"captionstyle":{},"thickness":{}}}


local p = {}

function p.main(frame)
	local args = frame.args
	local argtable = {}
	local templatetable = {
		params = {
		}
	} 
	local example = {}
	if string.find(args[1], "Module") == nil then
		return ''
	end
	local text = mw.title.new(args[1]):getContent()
	local x = 1
	for word in string.gmatch(text, "args%[%'(%w+)%'%]") do
		if argtable.word == nil then
			templatetable.params[word] = {}
			example[x] = word
		end
		table.insert(argtable, word)
		x = x + 1
	end
	local y = 1
	for word in string.gmatch(text, "args%.(%w+)") do
		if argtable.word == nil then
			templatetable.params[word] = {} 
			example[y] = word
		end
		table.insert(argtable, word)
		y = y + 1
	end
	if args[2] == 'dæmi' then
		return '{{' .. args[1] .. '\n| '  .. table.concat(example, '= \n| ') .. ' =\n}}'
	elseif args[3] == 'demo' then
		local jsontemplate = mw.text.jsonEncode(templatetable)
		jsontemplate = string.gsub(jsontemplate, "%[%]", "{}")
		return jsontemplate
	else
		local jsontemplate = mw.text.jsonEncode(templatetable)
		jsontemplate = string.gsub(jsontemplate, "%[%]", "{}")
		return frame:extensionTag("templatedata", jsontemplate)
	end
end

return p