Difference between revisions of "Module:Icon"
Jump to navigation
Jump to search
| Line 1: | Line 1: | ||
--<nowiki> | --<nowiki> | ||
local p = {} | local p = {} | ||
require('Module:Common') | local com = require('Module:Common') | ||
require('Module:Icon/data') | require('Module:Icon/data') | ||
local function _requirements(resource, value, link, text) | local function _requirements(resource, value, link, text) | ||
resource = string.lower(trim(resource)) | resource = string.lower(com.trim(resource)) | ||
resource = iconList[resource] | resource = iconList[resource] | ||
if resource ~= nil then | if resource ~= nil then | ||
-- Init link here, will be nil if resource is nil | -- Init link here, will be nil if resource is nil | ||
if exists(link) == false then | if com.exists(link) == false then | ||
link = resource['link'] | link = resource['link'] | ||
end | end | ||
--No point trimming the value if it won't be used | --No point trimming the value if it won't be used | ||
value = trim(value) | value = com.trim(value) | ||
--Check after trim as may be whitespace only | --Check after trim as may be whitespace only | ||
if exists(value) == true then | if com.exists(value) == true then | ||
value = ' (' .. value .. ')' | value = ' (' .. value .. ')' | ||
end | end | ||
| Line 28: | Line 28: | ||
.. ']]' | .. ']]' | ||
if exists(text) == true then | if com.exists(text) == true then | ||
if string.lower(text) ~= 'no' then | if string.lower(text) ~= 'no' then | ||
result = result .. '[[' | result = result .. '[[' | ||
Revision as of 20:03, 23 October 2021
Documentation for this module may be created at Module:Icon/doc
--<nowiki>
local p = {}
local com = require('Module:Common')
require('Module:Icon/data')
local function _requirements(resource, value, link, text)
resource = string.lower(com.trim(resource))
resource = iconList[resource]
if resource ~= nil then
-- Init link here, will be nil if resource is nil
if com.exists(link) == false then
link = resource['link']
end
--No point trimming the value if it won't be used
value = com.trim(value)
--Check after trim as may be whitespace only
if com.exists(value) == true then
value = ' (' .. value .. ')'
end
result = '[[file:'
.. resource['file']
.. '|16px|link='
.. link
.. ']]'
if com.exists(text) == true then
if string.lower(text) ~= 'no' then
result = result .. '[['
.. link
.. ']]'
end
end
else
result = 'Icon does not exist[[Category:Missing Icon]]'
end
return result
end
function p.requirements(frame)
r = frame.args['resource']
v = frame.args['value']
l = frame.args['link']
t = frame.args[1]
return _requirements(r, v, l, t)
end
function p.iconList(frame)
mw.log('Begin List')
list = mw.text.split(frame.args[1], ';')
result = ''
for k, v in ipairs(list) do
vs = mw.text.split(v, '-')
result = result .. _requirements(vs[1], vs[2], nil, frame.args['text'])
if k ~= table.getn(list) then
result = result .. '<br />'
end
end
mw.log('End List')
return result
end
function p.documentation()
keys = {}
for z in pairs(iconList) do
table.insert(keys, z)
end
table.sort(keys)
dataTable = {[1] = '', [2] = '', [3] = ''}
header = '\n{| class="wikitable"\n'
.. '! Code !! Icon !! Link\n'
.. '\n|-\n'
footer = '|}'
i = 1
while i < 4 do
dataTable[i] = header
i = i + 1
end
i = 1
for k, v in ipairs(keys) do
dataTable[i] = dataTable[i]
.. '| ' .. v
.. ' || ' .. _requirements(v, '', '', '')
.. ' || ' .. iconList[v]['link']
.. '\n|-\n'
if i == 3 then
i = 1
else
i = i + 1
end
mw.log(k)
end
i = 1
while i < 4 do
dataTable[i] = dataTable[i] .. footer
i = i + 1
end
result = mw.html.create('div')
result:css('display', 'grid')
:css('grid-template-columns', '1fr 1fr 1fr')
:wikitext(dataTable[1] .. dataTable[2] .. dataTable[3] .. '\n')
return result
end
return p