Амодуль:Transclusion count
Внешний вид
Ахәҭаҷ/асекциа адырра апроцесс аԥсуа бызшәа аиҭагара ахь. Абызшәа адырра шәазҟазазар, ишәылшоит шәхы алашәырхәыр. |
![]() | This Lua module is used on many pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
Fetches usage data for highly-transcluded templates. Uses bot-updated values from subpages of Module:Transclusion_count/data/ when available.
Usage
[акод аредакциазура]{{#invoke:Transclusion count|fetch|number of transclusions|use + notation|all-pages=|demo=}}
number of transclusions
: is a static number of times the template has been transcluded, to use when values cannot be read from the database. This value will be ignored if transclusion data is available for the current page.demo=Template_name
: will use the transclusion count for the template at Template:Template_name instead of detecting what template it is being used on. Capitalization must exactly match the value used in Special:PrefixIndex/Module:Transclusion_count/data/.
{{#invoke:Transclusion count|tabulate}}
- Used to generate Wikipedia:Database reports/Templates transcluded on the most pages.
Notices
[акод аредакциазура]- The number of transclusion count is generated via subpages of Module:Transclusion count/data when is available and is automatically updated via a bot.
local p = {}
function p._fetch(args)
local template = nil
local return_value = nil
-- Иҟазар адемо-параметр ахархәара, мамзар уажәтәи ашаблон ахьӡ ахархәара
local namespace = mw.title.getCurrentTitle().namespace
if args["demo"] and args["demo"] ~= "" then
template = mw.ustring.gsub(args["demo"],"^[Tt]emplate:","")
elseif namespace == 10 then -- Ашаблон ахьӡқәа рҭыԥ
template = mw.title.getCurrentTitle().text
elseif namespace == 828 then -- Амодуль ахьӡқәа рҭыԥ
template = (mw.site.namespaces[828].name .. ":" .. mw.title.getCurrentTitle().text)
end
-- Ашаблон ма амодуль ахьӡқәа рҭыԥ аҟны иҟазар, /дата аҟны аԥхьаӡара ԥшаа
if template ~= nil then
namespace = mw.title.new(template, "Template").namespace
if namespace == 10 or namespace == 828 then
template = mw.ustring.gsub(template, "/doc$", "") -- ацәаҳәа /doc аҵыхәантә
template = mw.ustring.gsub(template, "/sandbox$", "") -- ацәаҳәа /аԥслымӡҭра аҵыхәантә
local index = mw.ustring.sub(mw.title.new(template).text,1,1)
local status, data = pcall(function ()
return(mw.loadData('Амодуль:Transclusion_count/data/' .. (mw.ustring.find(index, "%a") and index or "other")))
end)
if status then
return_value = tonumber(data[mw.ustring.gsub(template, " ", "_")])
end
end
end
-- Адыррақәа рышьаҭа аҵакы ыҟамзар, ахархәара азутәуп ашаблон ахь ииасуа аҵакы
if return_value == nil and args[1] ~= nil then
local arg1=mw.ustring.match(args[1], '[%d,]+')
if arg1 and arg1 ~= '' then
return_value = tonumber(mw.getCurrentFrame():callParserFunction('formatnum', arg1, 'R'))
end
end
return return_value
end
function p.fetch(frame)
return p._fetch(frame.args)
end
-- Аҭаӡҩыра ҟашәҵа абри адыррақәа рзы [[Wikipedia:Database reports/Templates transcluded on the most pages]]
function p.tabulate()
local list = {}
for i = 65, 91 do
local data = mw.loadData('Амодуль:Transclusion count/data/' .. ((i == 91) and 'other' or string.char(i)))
for name, count in pairs(data) do
table.insert(list, {mw.title.new(name, "Template").fullText, count})
end
end
table.sort(list, function(a, b)
return (a[2] == b[2]) and (a[1] < b[1]) or (a[2] > b[2])
end)
local lang = mw.getContentLanguage();
for i = 1, #list do
list[i] = ('|-\n| %d || [[%s]] || %s\n'):format(i, list[i][1]:gsub('_', ' '), lang:formatNum(list[i][2]))
end
return table.concat(list)
end
return p