Module:バージョン: Difference between revisions

From Ylvapedia
(Create a module specific for Japanese pages... wonder if we can use one, but let the page itself detect JP or EN...)
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
-- WARNING: THIS MODULE IS CURRENTLY NOT USED.
-- Current stable version. Increment this when a new version is released.
-- Current stable version. Increment this when a new version is released.
-- The version of Elin is made of <major version>.<minor version>
-- The version of Elin is made of <major version>.<minor version>
Line 80: Line 81:
     result = result .. "''': "
     result = result .. "''': "
     if current then
     if current then
       result = result .. "この記事は''Elin''の最新の安定版リリースに対応しています。"
       result = result .. "この記事は''Elin''の[[Elin:更新履歴|最新の安定版リリース]]に対応しています。"
     else
     else
       result = result .. "この記事は、''Elin'' の[[Elin:更新履歴|最新の安定版リリース]]に対応していない可能性があり、不正確な情報を含んでいるかもしれません。"
       result = result .. "この記事は、''Elin'' の[[Elin:更新履歴|最新の安定版リリース]]に対応していない可能性があり、不正確な情報を含んでいるかもしれません。"

Latest revision as of 04:53, 26 December 2024

Documentation for this module may be created at Module:バージョン/doc

-- WARNING: THIS MODULE IS CURRENTLY NOT USED.
-- Current stable version. Increment this when a new version is released.
-- The version of Elin is made of <major version>.<minor version>
local CURRENT = 23.65
local _, _, CURRENT_major, CURRENT_minor = string.find( CURRENT, "(%d+)%.(%d+)" )
local p = {}

-- This function assume the input is in the form of <major version>.<minor version>, but it doesn't give an error if minor version doesn't exist.
-- Return:
-- 1, the current version is greater; 0, the versions are the same
-- -1, the input version is greater
local function if_greater_function(test_version)
	_, _, major, minor = string.find( test_version, "(%d+)%.(%d+)" )
	
	if CURRENT_major > major then
		return 1
	elseif CURRENT_major < major then
		return -1
	elseif CURRENT_minor > minor then
		return 1
	elseif CURRENT_minor < minor then
		return -1
	else
		return 0
	end
end	
-- 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
      return num
  end
  return nil
end

function p.version_tag(frame)
  local version = parse_version(frame.args[1])
  local current = if_greater_function(version) == 0
  local previ = if_greater_function(version) == 1
  local trunk = if_greater_function(version) == -1
  local unknown = not version
  local version_b = ""
  if version >= 23 then
  	version_b = "EA"
  elseif version < 23 then
  	version_b = "β"
  end
  local bgcolor = "fc6"
  if current then
    bgcolor = "99FF99"
  elseif trunk then
    bgcolor = "BCEBF5"
  elseif previ then
    bgcolor = "ff9999"
  end

  local bordercolor = "f90"
  if current then
    bordercolor = "33FF66"
  elseif trunk then
    bordercolor = "04A0BF"
  elseif previ then
    bordercolor = "ff3366"
  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 .. "'''''この記事は、Elinの未リリースバージョンの機能に関するものです。''"
  else
    result = result .. "'''''バージョン "
    if unknown then
      result = result .. "Unknown"
    else
      result = result .. "".. version_b .."" .. version .. ""
    end
    result = result .. "''': "
    if current then
      result = result .. "この記事は''Elin''の[[Elin:更新履歴|最新の安定版リリース]]に対応しています。"
    else
      result = result .. "この記事は、''Elin'' の[[Elin:更新履歴|最新の安定版リリース]]に対応していない可能性があり、不正確な情報を含んでいるかもしれません。"
    end
  end
  result = result .. "</div>"
  -- The next part is used to add a category, we don't do that just yet.
  --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