Module:Vital article
Appearance
![]() | 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. |
![]() | This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
Usage
This module implements the following templates:
Please refer to those templates' documentation.
local p = {}
local getLink = function(page)
local subpage = mw.ustring.upper(mw.ustring.sub(page, 1, 1)) -- get first letter of article name
local codepoint = mw.ustring.codepoint(page, 1, 1)
if codepoint<65 or codepoint>90 then --first letter is not between A-Z
subpage = 'others'
end
local data_page = 'Wikipedia:Vital articles/data/' .. subpage .. '.json'
local data = mw.loadJsonData(data_page)[page]
if data then
local level = tostring(data.level)
if level then
local trimmed_link = data.trimmed_link
local link
if trimmed_link then
link = 'Wikipedia:Vital articles' .. trimmed_link
else
link = 'Wikipedia:Vital articles/Level/' .. level
if (level=='4' or level=='5') and data.topic then
link = link .. '/' .. data.topic
end
if data.sublist then
link = link .. '/' .. data.sublist
end
--if data.section then -- not used until we have stable section anchors to link to
-- link = link .. '#' .. data.section
--end
end
return link, level
end
end
end
p.link = function(frame)
local page = frame.args.page~='' and frame.args.page or mw.title.getCurrentTitle().subjectPageTitle.text
local link, level = getLink(page)
return '[[' .. page .. ']]' .. (link and ' [[File:Círculos Concéntricos.svg|11px]] [[' .. link .. '|' .. level .. ']]' or '')
end
local top = function(container, frame)
return frame:expandTemplate{title = 'Possibly empty category'}
.. frame:expandTemplate{title = 'Wikipedia category', args = {container = container}}
.. frame:expandTemplate{title = 'CatAutoTOC'}
end
p.header = function(frame)
local cat = frame.args.category~='' and frame.args.category or mw.title.getCurrentTitle().subjectPageTitle.text
local class, topic = cat:match('^([%a-]+) vital articles in ([%a ]+)$')
if class and topic then
class = class:match('(%a+)-Class') or 'Unassessed'
return top(false, frame)
.. '[[Category:Wikipedia vital articles in ' .. topic .. ' by class|' .. class .. ']]'
.. '[[Category:' .. class .. (class=='Unassessed' and '' or '-Class') .. ' vital articles by topic|' .. (topic=='an unknown topic' and 'Unknown' or topic) .. ']]'
end
topic = cat:match('^Wikipedia vital articles in ([%a ]+) by class$')
if topic then
return top(true, frame)
.. '[[Category:Wikipedia vital articles in ' .. topic .. '|Class]]'
.. '[[Category:Wikipedia vital articles by topic by class|' .. topic .. ']]'
end
class = cat:match('^([%a-]+) vital articles by topic$')
if class then
class = class:match('(%a+)-Class') or 'Unassessed'
return top(true, frame)
.. '[[Category:' .. class .. (class=='Unassessed' and '' or '-Class') .. '-Class vital articles|Topic]]'
.. '[[Category:Wikipedia vital articles by class by topic|' .. class .. ']]'
end
end
return p