m (Protected "Module:Grid": High traffic page ([Edit=Staff and administrators] (indefinite) [Move=Staff and administrators] (indefinite))) |
m (cleanup because it looked ugly) |
||
(22 intermediate revisions by 5 users not shown) | |||
Line 10: | Line 10: | ||
local item = args[1] |
local item = args[1] |
||
+ | local renamed = require( [[Module:Grid/Renames]] )[item] |
||
+ | if renamed and ((args.mod or '') == 'V' or (args.mod or '') == '') then |
||
+ | args[1] = renamed |
||
+ | return [=[[[Category:Pages using a renamed tile]]]=] .. p.cell(args) |
||
+ | end |
||
local body = mw.html.create( 'span' ):addClass( 'grid' ):css{ ['vertical-align'] = args.align } |
local body = mw.html.create( 'span' ):addClass( 'grid' ):css{ ['vertical-align'] = args.align } |
||
Line 27: | Line 32: | ||
end |
end |
||
− | local |
+ | local mod = require([[Module:Mods]]).getData(string.upper(args.mod or '')) or { abbr="", mod="", name="", localized="" } |
− | local mod = mods.getData(string.upper(args.mod or '')) or { abbr="", mod="", name="", localised="" } |
||
local link = args.link or '' |
local link = args.link or '' |
||
Line 36: | Line 40: | ||
if link == '' then |
if link == '' then |
||
link = item |
link = item |
||
− | + | -- If args.dis is set, this means the user doesn't want to disambiguate, |
|
+ | -- so we want to invert the input! |
||
+ | local doDisambiguation = not args.dis |
||
+ | if mod.link and doDisambiguation then |
||
link = link .. ' (' .. mod.link .. ')' |
link = link .. ' (' .. mod.link .. ')' |
||
end |
end |
||
Line 43: | Line 50: | ||
end |
end |
||
− | local icon = body:tag( 'span' ) |
+ | local icon = body:tag( 'span' ):css{ ['padding'] = args.padding } |
− | local |
+ | local lang = require([[Module:Utility_functions]]).pageSuffix():sub(2) |
+ | local title = args.title or args.tooltiptext or f:callParserFunction("#iconloc", {item, mod.abbr, "name", lang}) |
||
⚫ | |||
− | + | if args.appendtitle then |
|
+ | title = f:callParserFunction("#iconloc", {item, mod.abbr, "name", lang}) .. args.title or args.tooltiptext or '' |
||
+ | end |
||
⚫ | |||
+ | title = item |
||
elseif title:lower() == 'none' then |
elseif title:lower() == 'none' then |
||
title = '' |
title = '' |
||
Line 58: | Line 69: | ||
end |
end |
||
( link and icon or body ):attr{ title = title } |
( link and icon or body ):attr{ title = title } |
||
− | + | if args['ore-dict-name'] and mod.localized then |
|
+ | local orenamefixed = args['ore-dict-name']:gsub("/", "\\/") |
||
+ | if not args.desc or args.desc == '' then |
||
+ | args.desc = '&7' .. orenamefixed .. '/&o&9' .. mod.localized |
||
+ | else |
||
+ | args.desc = args.desc .. '/&7' .. orenamefixed .. '/&o&9' .. mod.localized |
||
+ | end |
||
+ | end |
||
+ | body:attr{ ['data-minetip-text'] = args.desc or f:callParserFunction("#iconloc", {item, mod.abbr, "description", lang})} |
||
− | icon:wikitext( f:callParserFunction( '#icon', { "", item = item, mod = mod.abbr } ) ) |
+ | icon:wikitext( f:callParserFunction( '#icon', { "", item = item, mod = mod.abbr, size = args.size or 32 } ) ) |
local num = tonumber( args[2] or 1 ) |
local num = tonumber( args[2] or 1 ) |
Revision as of 23:56, 8 November 2020
Documentation for this module may be created at Module:Grid/doc
local p = {}
p.cell = function( f )
local args = f.args or f
if f == mw.getCurrentFrame() and args[1] == nil then
args = f:getParent().args
else
f = mw.getCurrentFrame()
end
args = require( [[Module:ProcessArgs]] ).norm( args )
local item = args[1]
local renamed = require( [[Module:Grid/Renames]] )[item]
if renamed and ((args.mod or '') == 'V' or (args.mod or '') == '') then
args[1] = renamed
return [=[[[Category:Pages using a renamed tile]]]=] .. p.cell(args)
end
local body = mw.html.create( 'span' ):addClass( 'grid' ):css{ ['vertical-align'] = args.align }
if args['no-bg'] then
body:addClass( 'grid-plain' )
end
if args.class then
body:addClass( args.class )
end
if args.style then
body:cssText( args.style )
end
if not item then
body:tag( 'br' )
return tostring( body )
end
local mod = require([[Module:Mods]]).getData(string.upper(args.mod or '')) or { abbr="", mod="", name="", localized="" }
local link = args.link or ''
if link:lower() == 'none' then
link = nil
else
if link == '' then
link = item
-- If args.dis is set, this means the user doesn't want to disambiguate,
-- so we want to invert the input!
local doDisambiguation = not args.dis
if mod.link and doDisambiguation then
link = link .. ' (' .. mod.link .. ')'
end
end
body:wikitext( '[[', link, require( [[Module:Language]] ).link(), '|' )
end
local icon = body:tag( 'span' ):css{ ['padding'] = args.padding }
local lang = require([[Module:Utility_functions]]).pageSuffix():sub(2)
local title = args.title or args.tooltiptext or f:callParserFunction("#iconloc", {item, mod.abbr, "name", lang})
if args.appendtitle then
title = f:callParserFunction("#iconloc", {item, mod.abbr, "name", lang}) .. args.title or args.tooltiptext or ''
end
if not title or title == '' then
title = item
elseif title:lower() == 'none' then
title = ''
elseif title:match( '&' ) then
body:attr( 'data-minetip-title', title )
title = title:gsub( '&[0-9a-fk-or]', '' )
if title == '' then
title = item
end
end
( link and icon or body ):attr{ title = title }
if args['ore-dict-name'] and mod.localized then
local orenamefixed = args['ore-dict-name']:gsub("/", "\\/")
if not args.desc or args.desc == '' then
args.desc = '&7' .. orenamefixed .. '/&o&9' .. mod.localized
else
args.desc = args.desc .. '/&7' .. orenamefixed .. '/&o&9' .. mod.localized
end
end
body:attr{ ['data-minetip-text'] = args.desc or f:callParserFunction("#iconloc", {item, mod.abbr, "description", lang})}
icon:wikitext( f:callParserFunction( '#icon', { "", item = item, mod = mod.abbr, size = args.size or 32 } ) )
local num = tonumber( args[2] or 1 )
if num and num > 1 and num < 1000 then
local number = icon:tag( 'span' ):addClass( 'grid-number' ):wikitext( num )
if args.numstyle then
number:cssText( args.numstyle )
end
end
if link then
body:wikitext( ']]' )
end
return tostring( body )
end
return p