Module:Item: Difference between revisions
Jump to navigation
Jump to search
Create: Minecraft Mod Wiki>Joker876 No edit summary |
BoxWithout (talk | contribs) Replacing just horrendous interwiki linking that Fandom and Wikia use. Like just genuinely terrible and unnecessary interwiki linking. |
||
(22 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
function p.item(f) | function p.item(f) | ||
local | local origArgs = f | ||
mw. | if f == mw.getCurrentFrame() then | ||
origArgs = f:getParent().args | |||
else | |||
f = mw.getCurrentFrame() | |||
end | |||
local args = {} | |||
for k,v in pairs(origArgs) do | |||
if type(k) == "string" then k = k:lower() end | |||
args[k] = v | |||
end | |||
local isMCwiki = args.minecraft or args.mc | local isMCwiki = args.minecraft or args.mc | ||
local item = args[1] or args.item or args.i | local item = args[1] or args.item or args.i | ||
local alt = args[2] or item | local alt = args[2] or item | ||
local link = args.link or item | local link = args.link or item | ||
local nolink = args.nolink | |||
local title = item | local title = item | ||
local imgsize = args.size or "21px" | local imgsize = args.size or "21px" | ||
if isMCwiki then | if isMCwiki then | ||
link = ' | link = 'minecraft:'..link | ||
title = 'Minecraft Wiki: '..title | title = 'Minecraft Wiki: '..title | ||
end | end | ||
if | if not item then return '<strong><font color="red">Template error in {{Item}}: missing argument #1 (item)</font></strong>' end | ||
local | local text = { | ||
'<span style="white-space: nowrap;">', | |||
} | |||
local i = 1 | |||
return tostring( | if not (args.image or args.img or args['image'..i] or args['img'..i]) then | ||
if nolink then | |||
table.insert(text, table.concat{'[[File:', item, '.png|', imgsize, '|link=]]'}) | |||
else | |||
table.insert(text, table.concat{'[[File:', item, '.png|', imgsize, '|link=', link, ']]'}) | |||
end | |||
end | |||
if not (args.image or args.img or args.image1 or args.img1) and (args.image2 or args.img2) then i = 2 end | |||
while i == 1 and (args.image or args.img or args.image2 or args.img2) or args['image'..i] or args['img'..i] do | |||
local img = args.image or args['image'..i] or args.img or args['img'..i] | |||
if nolink then | |||
table.insert(text, table.concat{'[[File:', img, '.png|', imgsize, '|link=]]'}) | |||
else | |||
table.insert(text, table.concat{'[[File:', img, '.png|', imgsize, '|link=', link, ']]'}) | |||
end | |||
i = i + 1 | |||
end | |||
table.insert(text, '</span>') | |||
if nolink then | |||
table.insert(text, table.concat{' ', alt}) | |||
else | |||
table.insert(text, table.concat{' [[', link, '|<span title="', title, '">', alt, '</span>]]'}) | |||
end | |||
return tostring(mw.html.create('span'):wikitext(table.concat(text))) | |||
end | end | ||
return p | return p |
Latest revision as of 14:04, 18 February 2025
Documentation for this module may be created at Module:Item/doc
local p = {}
function p.item(f)
local origArgs = f
if f == mw.getCurrentFrame() then
origArgs = f:getParent().args
else
f = mw.getCurrentFrame()
end
local args = {}
for k,v in pairs(origArgs) do
if type(k) == "string" then k = k:lower() end
args[k] = v
end
local isMCwiki = args.minecraft or args.mc
local item = args[1] or args.item or args.i
local alt = args[2] or item
local link = args.link or item
local nolink = args.nolink
local title = item
local imgsize = args.size or "21px"
if isMCwiki then
link = 'minecraft:'..link
title = 'Minecraft Wiki: '..title
end
if not item then return '<strong><font color="red">Template error in {{Item}}: missing argument #1 (item)</font></strong>' end
local text = {
'<span style="white-space: nowrap;">',
}
local i = 1
if not (args.image or args.img or args['image'..i] or args['img'..i]) then
if nolink then
table.insert(text, table.concat{'[[File:', item, '.png|', imgsize, '|link=]]'})
else
table.insert(text, table.concat{'[[File:', item, '.png|', imgsize, '|link=', link, ']]'})
end
end
if not (args.image or args.img or args.image1 or args.img1) and (args.image2 or args.img2) then i = 2 end
while i == 1 and (args.image or args.img or args.image2 or args.img2) or args['image'..i] or args['img'..i] do
local img = args.image or args['image'..i] or args.img or args['img'..i]
if nolink then
table.insert(text, table.concat{'[[File:', img, '.png|', imgsize, '|link=]]'})
else
table.insert(text, table.concat{'[[File:', img, '.png|', imgsize, '|link=', link, ']]'})
end
i = i + 1
end
table.insert(text, '</span>')
if nolink then
table.insert(text, table.concat{' ', alt})
else
table.insert(text, table.concat{' [[', link, '|<span title="', title, '">', alt, '</span>]]'})
end
return tostring(mw.html.create('span'):wikitext(table.concat(text)))
end
return p