Module:MonsterIndex
Documentation for this module may be created at Module:MonsterIndex/doc
local p = {}
local data = {
remake = {
{ char='d', name='Dire rat', zh='巨鼠', category='beast', target='Monster/Dire rat', class='red' },
{ char='D', name='Dragon', zh='龙', category='dragon', target='Monster/Dragon', class='yellow' },
},
classic = {
{ char='d', name='Giant rat', zh='巨鼠', category='beast', target='Classic:Monster/Giant rat', class='red' },
{ char='D', name='Dragon', zh='龙', category='dragon', target='Classic:Monster/Dragon', class='yellow' },
},
}
function p.render(frame)
local edition = frame.args.edition or (mw.title.getCurrentTitle().namespace == 3002 and 'classic' or 'remake')
local filter = mw.text.trim(frame.args.filter or ''):lower()
local tableNode = mw.html.create('table'):addClass('wikitable omega-monster-index')
local header = tableNode:tag('tr')
header:tag('th'):wikitext('Char')
header:tag('th'):wikitext('Name')
header:tag('th'):wikitext('Category')
for _, m in ipairs(data[edition] or {}) do
if filter == '' or m.name:lower():find(filter, 1, true) or m.char == filter or m.category == filter then
local target = tostring(mw.uri.localUrl(m.target))
local row = tableNode:tag('tr')
row:tag('td'):tag('a')
:addClass('omega-color-' .. m.class)
:attr('href', target)
:attr('aria-label', m.name .. ' (' .. m.zh .. ')')
:wikitext(mw.text.nowiki(m.char))
local nameCell = row:tag('td')
nameCell:tag('a')
:attr('href', target)
:wikitext(mw.text.nowiki(m.name))
nameCell:wikitext(' ')
nameCell:tag('span')
:attr('lang', 'zh-Hans')
:wikitext(mw.text.nowiki(m.zh))
row:tag('td'):wikitext(mw.text.nowiki(m.category))
end
end
return tostring(tableNode)
end
return p