Module:Version
Documentation for this module may be created at Module:Version/doc
-- Current stable version. Increment this when a new version is released. local STABLE = 18 local p = {} -- Tries to parse a version number -- returns either a version number, "trunk", or nil (meaning unknown) local function parse_version(version) if type(version) == "number" or version == "trunk" then return version end local num = tonumber(version) if num then -- convert 0.17 to 17 if num < 1 then num = 100*num end if num > STABLE then return "trunk" else return num end end return nil end function p.version_tag(frame) local version = parse_version(frame.args[1]) local current = version == STABLE local trunk = version == "trunk" local unknown = not version local bgcolor = "fc6" if current then bgcolor = "99FF99" elseif trunk then bgcolor = "BCEBF5" end local bordercolor = "f90" if current then bordercolor = "33FF66" elseif trunk then bordercolor = "04A0BF" end local result = [[<div style="border: 1px solid #%s; background-color: #%s; border-left: 15px solid #%s; margin-bottom: 20px; width: 100%%; padding: 4px 10px; line-height: 1.1em; width: auto;">]] result = result:format(bordercolor, bgcolor, bordercolor) if trunk then result = result .. "'''''[[Trunk]]-only''': This article pertains to a feature of Crawl which is being tested. It will likely change before the next release, and may even be removed entirely.''" else result = result .. "'''''Version " if unknown then result = result .. "Unknown" else result = result .. "[[0." .. version .. "]]" end result = result .. "''': " if current then result = result .. "This article is up to date for the [[0." .. STABLE .. "|latest stable release]] of ''Dungeon Crawl Stone Soup''." else result = result .. "This article may not be up to date for the [[0." .. STABLE .. "|latest stable release]] of Crawl.''" end end result = result .. "</div>" result = result .. "\n[[Category:" if trunk then result = result .. "Trunk" elseif unknown then result = result .. "Unknown" else result = result .. "0." .. version end result = result .. " articles]]" return result end function p.version_list(frame) local prev_versions = {} for version = STABLE - 1, 1, -1 do table.insert(prev_versions, "[[0." .. version .. "]]") end local result = [=[{| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%; background-color:white" | style="width:50%; vertical-align:top; border:1px solid #CC6600; background-color:#FF9966;" | <div style="border-bottom:0px solid #CC6600; background-color:#FF6633; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[:Category:Crawl Versions|Versions]]</div> <div style="border-bottom:0px solid #CC6600; padding:0.4em 1em 1em 1em;"> The Crawl Wiki is kept up to date with the latest stable release: [[0.]=] result = result .. STABLE .. "]]\n" result = result .. "* Previous releases: " .. table.concat(prev_versions, " | ") .. "\n" result = result .. "* In [[trunk]] development: [[0." .. STABLE + 1 .. "]]</div>\n|}" return result end return p