Jump to content

Module:Jcon/documentation: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Move documentation functions to a seperate module
 
Use a table
Line 8: Line 8:
local reverseAliases = {}
local reverseAliases = {}
local entries = {}
local entries = {}
local list = mw.html.create('ul') -- Create output list element
local tableEl = mw.html.create('table'):addClass('wikitable') -- Create output table element
local headerRow = tableEl:tag('tr')
headerRow:tag('th'):wikitext('Name')
headerRow:tag('th'):wikitext('Aliases')
headerRow:tag('th'):wikitext('Prefix')


for alias, name in pairs(data.aliases) do -- Reverse the alias table to allow lookup by name
for alias, name in pairs(data.aliases) do -- Reverse the alias table to allow lookup by name
Line 19: Line 24:


for name, info in pairs(data.types) do -- Create tables for each region
for name, info in pairs(data.types) do -- Create tables for each region
local aliases = ''
if reverseAliases[name] then
if reverseAliases[name] then
for _, alias in ipairs(reverseAliases[name]) do
for _, alias in ipairs(reverseAliases[name]) do
name = name .. ' / ' .. alias -- Add alias to list item
aliases = aliases .. '\n* ' .. alias -- Add alias to list item
end
end
end
end
local row = tableEl:tag('tr')
list:tag('li'):wikitext(name, ' ', '(' .. info.prefix .. ' ' .. info.type .. ')')
row:tag('td'):wikitext(name)
row:tag('td'):wikitext(aliases)
row:tag('td'):wikitext(info.prefix .. ' ' .. info.type)
end
end
for sign, wikitext in pairs(data.signs) do
for sign, wikitext in pairs(data.signs) do
local aliases = ''
if reverseAliases[sign] then
if reverseAliases[sign] then
for _, alias in ipairs(reverseAliases[sign]) do
for _, alias in ipairs(reverseAliases[sign]) do
sign = sign .. ' / ' .. alias -- Add alias to list item
aliases = aliases .. '\n* ' .. alias -- Add alias to list item
end
end
end
end
local row = tableEl:tag('tr')
list:tag('li'):wikitext(sign, ' ', wikitext)
row:tag('td'):wikitext(sign)
row:tag('td'):wikitext(aliases)
row:tag('td'):wikitext(wikitext)
end
end


return tostring(list)
return tostring(tableEl)
end
end



Revision as of 22:33, 20 July 2024

require('strict')

local p = {}
local data = mw.loadData('Module:Jcon/data')

-- Generates a list of supported regions
function p.supported(frame)
	local reverseAliases = {}
	local entries = {}
	local tableEl = mw.html.create('table'):addClass('wikitable') -- Create output table element
	
	local headerRow = tableEl:tag('tr')
	headerRow:tag('th'):wikitext('Name')
	headerRow:tag('th'):wikitext('Aliases')
	headerRow:tag('th'):wikitext('Prefix')

	for alias, name in pairs(data.aliases) do -- Reverse the alias table to allow lookup by name
		if not reverseAliases[name] then
			reverseAliases[name] = {}
		end
		
		table.insert(reverseAliases[name], alias)
	end

	for name, info in pairs(data.types) do -- Create tables for each region
		local aliases = ''
		
		if reverseAliases[name] then
			for _, alias in ipairs(reverseAliases[name]) do
				aliases = aliases .. '\n* ' .. alias -- Add alias to list item
			end
		end
		
		local row = tableEl:tag('tr')
		row:tag('td'):wikitext(name)
		row:tag('td'):wikitext(aliases)
		row:tag('td'):wikitext(info.prefix .. ' ' .. info.type)
	end
		
	for sign, wikitext in pairs(data.signs) do
		local aliases = ''
		
		if reverseAliases[sign] then
			for _, alias in ipairs(reverseAliases[sign]) do
				aliases = aliases .. '\n* ' .. alias -- Add alias to list item
			end
		end
		
		local row = tableEl:tag('tr')
		row:tag('td'):wikitext(sign)
		row:tag('td'):wikitext(aliases)
		row:tag('td'):wikitext(wikitext)
	end

	return tostring(tableEl)
end

return p