Difference between revisions of "Module:Infobox"
Jump to navigation
Jump to search
m (Replaced HtmlBuilder with TableBuilder) |
m (Used header cell instead of manual bold formatting) |
||
Line 17: | Line 17: | ||
local function addInfoRow(infobox, name, info) | local function addInfoRow(infobox, name, info) | ||
local row = infobox:addRow() | local row = infobox:addRow() | ||
− | row: | + | row:addHeader():wikitext(name) |
row:addData():wikitext(info) | row:addData():wikitext(info) | ||
end | end | ||
Line 30: | Line 30: | ||
width = args.width | width = args.width | ||
}) | }) | ||
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "Type", args.type or args.block_type or "Solid block") |
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "[[Mining#Drops|Drops]]", args.drops or "''Itself''") |
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "[[:Category:Falling|Physics]]", args.physics or "No") |
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "[[:Category:Luminous|Luminance]]", args.luminance or "No") |
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "[[:Category:Flammable|Flammable]]", args.flammable or "No") |
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "[[:Category:Generated_blocks|Generated]]", args.generated or "Yes") |
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "Renewable", args.renewable or "No") |
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "Stackable", args.stackable or "Yes (99)") |
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "[[Itemstrings|Itemstring]]", args.itemstring or "''?''") |
return tostring(infobox) | return tostring(infobox) | ||
end | end | ||
Line 51: | Line 51: | ||
width = args.width | width = args.width | ||
}) | }) | ||
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "Type", args.type or args.item_type or "Craftitem") |
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "Renewable", args.renewable or "No") |
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "Durability", args.durability or "''N/A''") |
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "Stackable", args.stackable or "Yes (99)") |
− | addInfoRow(infobox, " | + | addInfoRow(infobox, "[[Itemstrings|Itemstring]]", args.itemstring or "''?''") |
return tostring(infobox) | return tostring(infobox) | ||
end | end |
Revision as of 05:21, 11 April 2017
local p = {}
local TableBuilder = require("Module:TableBuilder") local animateImages = require("Module:Animated")._images local getArgs = require('Module:Arguments').getArgs
function p.block(frame)
local args = getArgs(frame, {inherited = true}) return p._block(args)
end
function p.item(frame)
local args = getArgs(frame, {inherited = true}) return p._item(args)
end
local function addInfoRow(infobox, name, info)
local row = infobox:addRow() row:addHeader():wikitext(name) row:addData():wikitext(info)
end
function p._block(args)
local infobox = p.infobox({ name = args.name or args.block_name or "A block", image = args.image, imageSize = "150px", description = "A block", wherein = args.wherein, width = args.width }) addInfoRow(infobox, "Type", args.type or args.block_type or "Solid block") addInfoRow(infobox, "Drops", args.drops or "Itself") addInfoRow(infobox, "Physics", args.physics or "No") addInfoRow(infobox, "Luminance", args.luminance or "No") addInfoRow(infobox, "Flammable", args.flammable or "No") addInfoRow(infobox, "Generated", args.generated or "Yes") addInfoRow(infobox, "Renewable", args.renewable or "No") addInfoRow(infobox, "Stackable", args.stackable or "Yes (99)") addInfoRow(infobox, "Itemstring", args.itemstring or "?") return tostring(infobox)
end
function p._item(args)
local infobox = p.infobox({ name = args.name or args.item_name or "An item", image = args.image, imageSize = "160px", description = "An item", wherein = args.wherein, width = args.width }) addInfoRow(infobox, "Type", args.type or args.item_type or "Craftitem") addInfoRow(infobox, "Renewable", args.renewable or "No") addInfoRow(infobox, "Durability", args.durability or "N/A") addInfoRow(infobox, "Stackable", args.stackable or "Yes (99)") addInfoRow(infobox, "Itemstring", args.itemstring or "?") return tostring(infobox)
end
function p.infobox(args)
local name = args.name local width = args.width or "200px" local description = args.description .. " in " .. (args.wherein or "Minetest Game") local image = args.image or "Minetest logo.png" local imageSize = args.imageSize local imageText if string.match(image, ",") then imageText = animateImages({image, imageSize}) else imageText = "" .. imageSize .. "" end return TableBuilder.create() :addClass("wikitable") :css("float", "right") :css("text-align", "left") :css("margin", "0 0 0.5em 1em") :css("padding", "5px") :css("font-size", "90%") :css("position", "relative") :css("clear", "right") :css("overflow", "auto") :css("z-index", "1") :attr("width", width) :addRow() :addHeader() :attr("colspan", 2) :css("font-size", "110%") :css("text-align", "center") :wikitext(name) :done() :done() :addRow() :addHeader() :attr("colspan", 2) :tag("div") :addClass("center") :wikitext(imageText) :done() :done() :done() :addRow() :addHeader() :attr("colspan", 2) :attr("align", "center") :wikitext(description) :allDone()
end
return p