Module:BuildingLink
From Against the Storm Official Wiki
Documentation for this module may be created at Module:BuildingLink/doc
------------------------------------------------------------------------------- -- Renders the {{Building_link}} template -- -- Takes an argument, the name of the building. Optionally, accepts a second -- argument, "med" or "large" or "huge" to render an icon when the link is -- used outside of in-line with text. ------------------------------------------------------------------------------- local BuildingLink = {} local IconFilenames = require("Module:IconFilenames") -- lookup table for image filenames function BuildingLink.renderLink(frame) local strBuildingName = frame.args.image local strIconSize = frame.args.size local strFilename = IconFilenames.getIconFilename(strBuildingName) -- if looking up the provided image name returned nil, then render an error if not strFilename then return "renderIcon Error: file " .. strBuildingName .." not found" end -- render the string to return, starting with the file tag, if any, then the link tag -- use the established templates for image sizes, with the default being -- small, or in-line size. local strFilePart = "" if "med" == strIconSize then -- don't forget the spaces when not default strFilePart = string.format("[[File:%s|%s]] ", strFilename, frame:expandTemplate{title="ImgM"}) elseif "large" == strIconSize then strFilePart = string.format("[[File:%s|%s]] ", strFilename, frame:expandTemplate{title="ImgL"}) elseif "huge" == strIconSize then strFilePart = string.format("[[File:%s|%s]] ", strFilename, frame:expandTemplate{title="ImgH"}) end -- build the link based on the name of the resource passed in local strLinkPart = "[[" .. strBuildingName .. "]]" return strFilePart .. strLinkPart end return BuildingLink