در حال ویرایش پودمان:High-use
این ویرایش را میتوان خنثی کرد. لطفاً تفاوت زیر را بررسی کنید تا تأیید کنید که این چیزی است که میخواهید انجام دهید، سپس تغییرات زیر را ذخیره کنید تا خنثیسازی ویرایش را به پایان ببرید.
نسخهٔ فعلی | متن شما | ||
خط ۱: | خط ۱: | ||
local p = {} | local p = {} | ||
local _fetch = require('Module:Transclusion_count').fetch | local _fetch = require('Module:Transclusion_count').fetch | ||
function p.num(frame, count) | function p.num(frame, count) | ||
if count == nil then | if count == nil then count = _fetch(frame) end | ||
-- Build output string | -- Build output string | ||
خط ۲۳: | خط ۱۵: | ||
end | end | ||
else | else | ||
-- Use 2 | -- Use 2 sigfigs for smaller numbers and 3 for larger ones | ||
local sigfig = 2 | local sigfig = 2 | ||
if count >= 100000 then | if count >= 100000 then | ||
خط ۳۲: | خط ۲۴: | ||
local f = math.floor(math.log10(count)) - sigfig + 1 | local f = math.floor(math.log10(count)) - sigfig + 1 | ||
-- Round and insert " | -- Round and insert "apprxomimately" or "+" when appropriate | ||
if (frame.args[2] == "yes") or (mw.ustring.sub(frame.args[1],-1) == "+") then | if (frame.args[2] == "yes") or (mw.ustring.sub(frame.args[1],-1) == "+") then | ||
-- Round down | -- Round down | ||
خط ۴۰: | خط ۳۲: | ||
return_value = string.format("approximately %s", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) + 0.5) * (10^(f))) ) | return_value = string.format("approximately %s", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) + 0.5) * (10^(f))) ) | ||
end | end | ||
-- Insert | -- Insert percent of pages | ||
if | if frame.args["all-pages"] and frame.args["all-pages"] ~= "" then | ||
local percent = math.floor( ( (count/frame:callParserFunction('NUMBEROFPAGES', 'R') ) * 100) + 0.5) | local percent = math.floor( ( (count/frame:callParserFunction('NUMBEROFPAGES', 'R') ) * 100) + 0.5) | ||
return_value = string.format("%s pages, which is ≈%s%% of all", return_value, percent) | |||
end | end | ||
end | end | ||
خط ۵۲: | خط ۴۲: | ||
return return_value | return return_value | ||
end | end | ||
function p.risk(frame) | function p.risk(frame) | ||
local return_value = "" | local return_value = "" | ||
خط ۶۵: | خط ۵۵: | ||
function p.text(frame, count) | function p.text(frame, count) | ||
if count == nil then count = _fetch(frame) end | |||
local return_value = {} | |||
local | |||
local title = mw.title.getCurrentTitle() | local title = mw.title.getCurrentTitle() | ||
if title.subpageText == "doc" or title.subpageText == "sandbox" then | if title.subpageText == "doc" or title.subpageText == "sandbox" then | ||
خط ۸۱: | خط ۶۳: | ||
end | end | ||
local | local templatecount = string.format("https://tools.wmflabs.org/templatecount/index.php?lang=en&namespace=%s&name=%s",mw.title.getCurrentTitle().namespace,mw.uri.encode(title.text)) | ||
local used_on_text = string.format("'''This %s is used on [%s %s pages]'''", | |||
local | (mw.title.getCurrentTitle().namespace == 828 and "Lua module" or "template"), | ||
templatecount, | |||
p.num(frame, count) | |||
) | |||
local sandbox_text = string.format("%s's [[%s/sandbox|/sandbox]] or [[%s/testcases|/testcases]] subpages%s ", | |||
local sandbox_text = ("%s's [[%s/sandbox|/sandbox]] or [[%s/testcases|/testcases]] subpages | (mw.title.getCurrentTitle().namespace == 828 and "module" or "template"), | ||
title.fullText, title.fullText, | |||
(mw.title.getCurrentTitle().namespace == 828 and "." or ", or in your own [[Wikipedia:Subpages#How to create user subpages|user subpage]].") | |||
) | ) | ||
if (frame.args[1] == "risk" or (count and count >= 100000) ) then | |||
if ( | local info = "" | ||
local info = | if frame.args["info"] and frame.args["info"] ~= "" then | ||
if | info = "<br />" .. frame.args["info"] | ||
info = | |||
end | end | ||
sandbox_text = | sandbox_text = string.format(".%s<br /> To avoid large-scale disruption and unnecessary server load, any changes to it should first be tested in the %sThe tested changes can then be added to this page in a single edit. ", | ||
info, sandbox_text | |||
) | |||
else | else | ||
sandbox_text = ( | sandbox_text = string.format(", so changes to it will be widely noticed. Please test any changes in the %s", | ||
sandbox_text | |||
) | |||
end | end | ||
local discussion_text = | local discussion_text = "Please consider discussing changes " | ||
if frame.args["2"] and frame.args["2"] ~= "" and frame.args["2"] ~= "yes" then | if frame.args["2"] and frame.args["2"] ~= "" and frame.args["2"] ~= "yes" then | ||
discussion_text = string.format("%sat [[%s]]", discussion_text, frame.args["2"]) | discussion_text = string.format("%sat [[%s]]", discussion_text, frame.args["2"]) | ||
خط ۱۲۸: | خط ۹۸: | ||
end | end | ||
return used_on_text | return table.concat({used_on_text, sandbox_text, discussion_text, " before implementing them."}) | ||
end | end | ||
function p.main(frame) | function p.main(frame) | ||
local count = | local count = _fetch(frame) | ||
local return_value = "" | |||
local image = "[[File:Ambox warning yellow.svg|40px|alt=Warning|link=]]" | local image = "[[File:Ambox warning yellow.svg|40px|alt=Warning|link=]]" | ||
local type_param = "style" | local type_param = "style" | ||
if (frame.args[1] == "risk" or (count and count >= 100000) ) then | |||
if | |||
image = "[[File:Ambox warning orange.svg|40px|alt=Warning|link=]]" | image = "[[File:Ambox warning orange.svg|40px|alt=Warning|link=]]" | ||
type_param = "content" | type_param = "content" | ||
خط ۱۵۵: | خط ۱۱۲: | ||
if frame.args["form"] == "editnotice" then | if frame.args["form"] == "editnotice" then | ||
return_value = frame:expandTemplate{ | |||
title = 'editnotice', | title = 'editnotice', | ||
args = { | args = { | ||
خط ۱۶۲: | خط ۱۱۹: | ||
["expiry"] = (frame.args["expiry"] or "") | ["expiry"] = (frame.args["expiry"] or "") | ||
} | } | ||
} | } | ||
else | else | ||
return_value = frame:expandTemplate{ | |||
title = 'ombox', | |||
args = { | |||
["type"] = type_param, | |||
["image"] = image, | |||
} | ["text"] = p.text(frame, count), | ||
["expiry"] = (frame.args["expiry"] or "") | |||
} | |||
} | |||
end | end | ||
return return_value | |||
end | end | ||
return p | return p |