Module:Transclusion count
Module documentation​[​view​] [edit] [history] [purge]
This module is rated as beta, and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected.
Fetches usage data for highly-transcluded templates. Uses bot-updated values from subpages of Module:Transclusion_count/data/ when available.
{{#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/​.
The above documentation is transcluded from Module:Transclusion count/doc. (edit | history)
Editors can experiment in this module's sandbox (edit | diff) and testcases (create) pages.
Subpages of this module.
local p = {}
function p.fetch(frame) local template = nil local return_value = nil
-- Use demo parameter if it exists, otherswise use current template name local namespace = mw​.​title​.​getCurrentTitle​().​namespace if frame.args["demo"] and frame.args["demo"] ~= "" then template = frame.args["demo"] elseif namespace == 10 then -- Template namespace template = mw​.​title​.​getCurrentTitle​().​text elseif namespace == 828 then -- Module namespace template = (​mw​.​site​.​namespaces​[​828​].​name .. ":" .. mw​.​title​.​getCurrentTitle​().​text​) end
-- If in template or module namespace, look up count in /data if template ~= nil then namespace = mw​.​title​.​new​(​template​, "Template"​).​namespace if namespace == 10 or namespace == 828 then template = mw​.​ustring​.​gsub​(​template​, "/doc$", "") -- strip /doc from end local index = mw​.​ustring​.​sub​(​mw​.​title​.​new​(​template​).​text​,​1​,​1​) local status, data = pcall(function () return​(​mw​.​loadData​(​'Module: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 database value doesn't exist, use value passed to template if return_value == nil and frame.args[1] ~= nil then local arg1​=​mw​.​ustring​.​match​(​frame​.​args​[​1​], '[%d,]+') if arg1 and arg1 ~= '' then return_value = tonumber​(​frame​:​callParserFunction​(​'formatnum'​, arg1, 'R')) end end return return_value end
return p
Last edited on 3 August 2021, at 01:42
Content is available under CC BY-SA 3.0 unless otherwise noted.
Privacy policy
Terms of Use
HomeRandomNearbyLog inSettingsDonateAbout WikipediaDisclaimers