This module creates a test case template using data aggregated from Module:Icon/data and Module:Icon/data/sandbox. It is intended to be displayed at Template:Icon/testcases.
Usage
{{#invoke:icon/table|main}}
Output
Icon | Description | Code | Aliases |
---|---|---|---|
OODA WIKI page | {{icon|OODAWIKI}}
|
||
A-Class article | A-Class article | {{icon|a}}
|
|
Audited article of limited subject matter | {{icon|aa}}
|
||
A-Class article candidate | A-Class article candidate | {{icon|acc}}
|
aac , acn
|
B-Class article | B-Class article | {{icon|b}}
|
|
OODA WIKI book | OODA WIKI book | {{icon|book}}
|
|
Bplus-Class article | Bplus-Class article | {{icon|bplus}}
|
b+
|
B-Class review | B-Class review | {{icon|br}}
|
bcr
|
C-Class article | C-Class article | {{icon|c}}
|
|
Category | {{icon|category}}
|
cat , categ
| |
Cleanup work | {{icon|cleanup}}
|
||
Commons page | {{icon|commons}}
|
||
Demoted article | Demoted article | {{icon|da}}
|
|
Demoted A-Class article | Demoted A-Class article | {{icon|dac}}
|
daa
|
Delisted good article | Delisted good article | {{icon|dga}}
|
|
Disambiguation page | Disambiguation page | {{icon|disambiguation}}
|
dab , disamb , disambig
|
Draft-Class article | Draft-Class article | {{icon|draft}}
|
|
Did You Know? | {{icon|dyk}}
|
||
Did You Know? | {{icon|dyk2}}
|
||
Essay | Essay | {{icon|essay}}
|
|
Featured article | {{icon|fa}}
|
||
Featured article candidate | Featured article candidate | {{icon|fac}}
|
fan
|
Featured article review | Featured article review | {{icon|far}}
|
|
Featured article removal candidate | Featured article removal candidate | {{icon|farc}}
|
|
Former featured article | Former featured article | {{icon|ffa}}
|
dfa
|
Failed featured article candidate | Failed featured article candidate | {{icon|ffac}}
|
nofa
|
Former featured list | Former featured list | {{icon|ffl}}
|
dfl
|
Failed featured list candidate | Failed featured list candidate | {{icon|fflc}}
|
nofl
|
Former featured picture | Former featured picture | {{icon|ffp}}
|
|
Former featured portal | Former featured portal | {{icon|ffpo}}
|
|
Former featured sound | Former featured sound | {{icon|ffs}}
|
|
Former featured topic | Former featured topic | {{icon|fft}}
|
dft
|
Failed good article nominee | Failed good article nominee | {{icon|fgan}}
|
gaf , gf , noga
|
Featured list | {{icon|fl}}
|
||
Featured list candidate | Featured list candidate | {{icon|flc}}
|
fln
|
Featured list removal candidate | Featured list removal candidate | {{icon|flrc}}
|
flr
|
Four Award | Four Award | {{icon|four}}
|
4a
|
Featured picture | {{icon|fp}}
|
||
Featured picture candidate | Featured picture candidate | {{icon|fpc}}
|
fpn
|
Before the featured portal process ceased in 2017, this had been designated as a featured portal. | Before the featured portal process ceased in 2017, this had been designated as a featured portal. | {{icon|fpo}}
|
|
Featured portal candidate | Featured portal candidate | {{icon|fpoc}}
|
|
Featured portal review | Featured portal review | {{icon|fpor}}
|
|
Featured sound | {{icon|fs}}
|
||
Featured sound candidate | Featured sound candidate | {{icon|fsc}}
|
|
Featured topic | Featured topic | {{icon|ft}}
|
|
Featured topic candidate | Featured topic candidate | {{icon|ftc}}
|
ftn
|
Featured topic removal candidate | Featured topic removal candidate | {{icon|ftrc}}
|
|
Good article | Good article | {{icon|ga}}
|
|
Good article, 2nd opinion | Good article, 2nd opinion | {{icon|ga2}}
|
|
Good article on hold | Good article on hold | {{icon|gah}}
|
|
Good article nominee | Good article nominee | {{icon|gan}}
|
gac
|
Good article reassessment | Good article reassessment | {{icon|gar}}
|
|
Guild of Copy Editors | Guild of Copy Editors | {{icon|goce}}
|
|
Good topic | Good topic | {{icon|gt}}
|
|
Good topic candidate | Good topic candidate | {{icon|gtc}}
|
gtn
|
Good topic removal candidate | Good topic removal candidate | {{icon|gtrc}}
|
|
File | File | {{icon|image}}
|
file
|
In The News | In The News | {{icon|itn}}
|
|
List-Class article | List-Class article | {{icon|list}}
|
comparison
|
MediaWiki | MediaWiki | {{icon|mediawiki}}
|
|
Meta-wiki page | Meta-wiki page | {{icon|meta}}
|
|
Million Award | Million Award | {{icon|million}}
|
|
Module | Module | {{icon|module}}
|
|
Non-article page | Non-article page | {{icon|na}}
|
|
Needed article | Needed article | {{icon|needed}}
|
|
Unknown-Class article | Unknown-Class article | {{icon|no}}
|
|
Failed A-Class article candidate | Failed A-Class article candidate | {{icon|noac}}
|
faac
|
On This Day | On This Day | {{icon|otd}}
|
|
Outline | Outline | {{icon|outline}}
|
|
Phabricator | Phabricator | {{icon|phabricator}}
|
phab
|
Portal | {{icon|portal}}
|
||
Picture of the Day | Picture of the Day | {{icon|potd}}
|
|
Portal peer review | Portal peer review | {{icon|ppr}}
|
|
Peer review | Peer review | {{icon|pr}}
|
|
Project page | Project page | {{icon|project}}
|
|
Question | {{icon|q}}
|
question
| |
Quality image on Wikimedia Commons | Quality image on Wikimedia Commons | {{icon|qi}}
|
|
Redirect | Redirect | {{icon|redirect}}
|
red , redir
|
Start-Class article | Start-Class article | {{icon|start}}
|
|
Stub-Class article | Stub-Class article | {{icon|stub}}
|
|
Template | Template | {{icon|template}}
|
temp , templ
|
Today's Featured Article | Today's Featured Article | {{icon|tfa}}
|
|
Today's Featured List | Today's Featured List | {{icon|tfl}}
|
|
Valued image on Wikimedia Commons | Valued image on Wikimedia Commons | {{icon|vi}}
|
|
Vital article | Vital article | {{icon|vital}}
|
|
Valued picture | Valued picture | {{icon|vp}}
|
|
Valued picture candidate | Valued picture candidate | {{icon|vpc}}
|
|
Wikibooks page | Wikibooks page | {{icon|wikibooks}}
|
|
Wikidata page | Wikidata page | {{icon|wikidata}}
|
|
Wikinews page | Wikinews page | {{icon|wikinews}}
|
|
WikiProject | WikiProject | {{icon|wikiproject}}
|
|
Wikiquote page | Wikiquote page | {{icon|wikiquote}}
|
|
Wikisource page | Wikisource page | {{icon|wikisource}}
|
|
Wikispecies page | Wikispecies page | {{icon|wikispecies}}
|
|
Wikitech | Wikitech | {{icon|wikitech}}
|
|
Wikiversity page | Wikiversity page | {{icon|wikiversity}}
|
|
Wikivoyage page | Wikivoyage page | {{icon|wikivoyage}}
|
|
Wiktionary page | Wiktionary page | {{icon|wiktionary}}
|
-- Create a table of icons to display on the template test case page
require('strict')
local p = {}
local m_iconData = mw.loadData("Module:Icon/data")
local m_iconSandboxData = mw.loadData("Module:Icon/data/sandbox")
local function mergeTables(...)
local ret = {}
for _, t in ipairs{...} do
for k, v in pairs(t) do
ret[k] = v
end
end
return ret
end
local function reconstituteAliases(iconDataCollection)
local ret = {}
for code, iconData in pairs(iconDataCollection) do
local outputData = ret[iconData.canonicalCode] or {
aliases = {},
image = iconData.image,
tooltip = iconData.tooltip,
link = iconData.link,
}
if code ~= iconData.canonicalCode then
table.insert(outputData.aliases, code)
end
ret[iconData.canonicalCode] = outputData
end
return ret
end
local function makeTableData(iconDataCollection)
local ret = {}
for code, iconData in pairs(reconstituteAliases(iconDataCollection)) do
if code ~= '_DEFAULT' then
table.insert(ret, {code = code, description = iconData.tooltip, aliases = iconData.aliases})
end
end
table.sort(
ret,
function(t1, t2)
return t1.code < t2.code
end
)
for _, t in ipairs(ret) do
table.sort(t.aliases)
end
return ret
end
function p.testcases(frame)
local tableData = makeTableData(mergeTables(m_iconData, m_iconSandboxData))
local ret = {
'{| class="wikitable sortable"',
'! Code',
'! [[Template:Icon|Template]]',
'! [[Template:Icon/sandbox|Sandbox]]',
'! Description',
}
local function addRow(code, description)
table.insert(ret, '|-')
table.insert(ret, '| <code>' .. mw.text.nowiki('{{icon|' .. code .. '}}') .. '</code>')
table.insert(ret, '| style="text-align: center" | ' .. frame:expandTemplate{title = 'icon', args = {code}})
table.insert(ret, '| style="text-align: center" | ' .. frame:expandTemplate{title = 'icon/sandbox', args = {code}})
table.insert(ret, '| ' .. description)
end
for _, rowData in ipairs(tableData) do
addRow(rowData.code, rowData.description)
for _, alias in ipairs(rowData.aliases) do
addRow(alias, rowData.description)
end
end
table.insert(ret, '|}')
return table.concat(ret, '\n')
end
function p.main(frame)
local tableData = makeTableData(m_iconData)
local ret = {
'{| class="wikitable sortable"',
'! Icon',
'! Description',
'! Code',
'! Aliases'
}
for _, rowData in ipairs(tableData) do
table.insert(ret, '|-')
table.insert(ret, '| style="text-align: center" | ' .. frame:expandTemplate{title = 'icon', args = {rowData.code}})
table.insert(ret, '| ' .. rowData.description)
table.insert(ret, '| <code>' .. mw.text.nowiki('{{icon|' .. rowData.code .. '}}') .. '</code>')
local aliasText = {}
for _, alias in ipairs(rowData.aliases) do
table.insert(aliasText, '<code>' .. alias .. '</code>')
end
table.insert(ret, '| ' .. table.concat(aliasText, ', '))
end
table.insert(ret, '|}')
return table.concat(ret, '\n')
end
return p