Difference between revisions of "Module:Version"

From CrawlWiki
Jump to: navigation, search
(Gonna go ahead and start updating pages to 0.28. feature freeze has hit, as well as 0.28 in public servers)
(0.33 is releasing imminently, already out on servers)
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
-- Current stable version. Increment this when a new version is released.
 
-- Current stable version. Increment this when a new version is released.
local STABLE = 28
+
local STABLE = 33
 +
local RECENT = 32
  
 
local p = {}
 
local p = {}
Line 28: Line 29:
 
   local version = parse_version(frame.args[1])
 
   local version = parse_version(frame.args[1])
 
   local current = version == STABLE
 
   local current = version == STABLE
 +
  local previ = version == RECENT
 
   local trunk = version == "trunk"
 
   local trunk = version == "trunk"
 
   local unknown = not version
 
   local unknown = not version
Line 36: Line 38:
 
   elseif trunk then
 
   elseif trunk then
 
     bgcolor = "BCEBF5"
 
     bgcolor = "BCEBF5"
 +
  elseif previ then
 +
    bgcolor = "e0fae0"
 
   end
 
   end
  
Line 43: Line 47:
 
   elseif trunk then
 
   elseif trunk then
 
     bordercolor = "04A0BF"
 
     bordercolor = "04A0BF"
 +
  elseif previ then
 +
    bordercolor = "33FF66"
 
   end
 
   end
  
Line 60: Line 66:
 
       result = result .. "This article is up to date for the [[0." .. STABLE .. "|latest stable release]] of ''Dungeon Crawl Stone Soup''."
 
       result = result .. "This article is up to date for the [[0." .. STABLE .. "|latest stable release]] of ''Dungeon Crawl Stone Soup''."
 
     else
 
     else
       result = result .. "This article may not be up to date for the [[0." .. STABLE .. "|latest stable release]] of Crawl.''"
+
       result = result .. "This article '''may not be''' up to date for the [[0." .. STABLE .. "|latest stable release]] of Crawl.''"
 
     end
 
     end
 
   end
 
   end

Latest revision as of 22:20, 1 May 2025

Documentation for this module may be created at Module:Version/doc

-- Current stable version. Increment this when a new version is released.
local STABLE = 33
local RECENT = 32

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 previ = version == RECENT
  local trunk = version == "trunk"
  local unknown = not version

  local bgcolor = "fc6"
  if current then
    bgcolor = "99FF99"
  elseif trunk then
    bgcolor = "BCEBF5"
  elseif previ then
    bgcolor = "e0fae0"
  end

  local bordercolor = "f90"
  if current then
    bordercolor = "33FF66"
  elseif trunk then
    bordercolor = "04A0BF"
  elseif previ then
    bordercolor = "33FF66"
  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