Module:MaterialInfobox: Difference between revisions
Appearance
Content deleted Content added
m Removed test |
Turns out we don't need these |
||
| Line 35: | Line 35: | ||
end |
end |
||
return output |
return output |
||
end |
|||
--[[ Everything after this is stuff you may or may not want to keep --]] |
|||
function SplitRunFunction(func_name, field, vars, value) |
|||
if type( func_name ) == "string" then |
|||
if not HF.isempty( func_name ) then |
|||
if type( Infobox[func_name] ) == "function" then |
|||
return Infobox[func_name]( field, vars, value ) --[[ I tried a hack where I modified field.Value to little success, so I resorted to calling it with different arguments --]] |
|||
end |
|||
end |
|||
end |
|||
return value |
|||
end |
|||
function Infobox.ExampleSplitLabelMethod( field, vars ) |
|||
return { |
|||
SplitRunFunction( field.LabelLeftMethod, field, vars, field.LabelLeft ), |
|||
SplitRunFunction( field.LabelRightMethod, field, vars, field.LabelRight ) |
|||
} |
|||
end |
|||
function Infobox.ExampleSplitValueMethod( field, vars ) |
|||
return { |
|||
SplitRunFunction( field.ValueLeftMethod, field, vars, field.ValueLeft ), |
|||
SplitRunFunction( field.ValueRightMethod, field, vars, field.ValueRight ) |
|||
} |
|||
end |
|||
--[[ Carbon copy of Infobox.Newline lazily modified to for Split fields --]] |
|||
function SplitNewlineHelper( value ) |
|||
local output = '' |
|||
if not HF.isempty(value) then |
|||
local ships = HF.explode(';', value) |
|||
table.sort(ships) |
|||
for i, ship in ipairs(ships) do |
|||
output = output .. HF.trim(ship) .. '<br />' |
|||
end |
|||
if string.sub(output, -6) == '<br />' then |
|||
output = string.sub( output, 1, -7 ) |
|||
end |
|||
end |
|||
return output |
|||
end |
|||
function Infobox.SplitNewline( field, vars ) |
|||
return { |
|||
SplitNewlineHelper( field.ValueLeft ), |
|||
SplitNewlineHelper( field.ValueRight ) |
|||
} |
|||
end |
end |
||
Revision as of 20:21, 13 December 2015
Documentation for this module may be created at Module:MaterialInfobox/doc
local Infobox = {}
local HF = require('Module:HF')
function Infobox.Newline( field, vars )
local output = ''
if not HF.isempty(field.Value) then
local ships = HF.explode(';', field.Value)
table.sort(ships)
for i, ship in ipairs(ships) do
output = output .. HF.trim(ship) .. '<br />'
end
if string.sub(output, -6) == '<br />' then
output = string.sub( output, 1, -7 )
end
return output
end
end
function Infobox.PreTitleIcon( field, vars )
output = field.Value
if not HF.isempty(field.Grade) then
if field.Grade == 'Rare' or field.Grade == 'rare' then
output = '[[File:Rare material.svg|35px|link=]] ' .. output
elseif field.Grade == 'Very common' or field.Grade == 'Very Common' or field.Grade == 'very common' then
output = '[[File:Very common material.svg|35px|link=]] ' .. output
elseif field.Grade == 'Very rare' or field.Grade == 'Very Rare' or field.Grade == 'very rare' then
output = '[[File:Very rare material.svg|35px|link=]] ' .. output
elseif field.Grade == 'Common' or field.Grade == 'common' then
output = '[[File:Common material.svg|35px|link=]] ' .. output
else
output = output
end
end
return output
end
return Infobox