Module:Pages with authority control identifiers
Revision as of 09:05, 18 March 2022 by w>MSGJ (code for Category:Pages with XYZ no longer required)
This module depends on the following other modules: |
Related pages |
---|
Usage
{{#invoke:Pages with authority control identifiers|autoDetect}}
See also
Tracking categories
require('Module:No globals') local p = {} local ac_conf = require('Module:Authority control').conf local rmCats = require('Module:Suppress categories').main local currentTitle = mw.title.getCurrentTitle() local title = currentTitle.text -- Local Utility Functions local function whichTOC( frame ) -- standardize TOC behavior via {{CatAutoTOC}} return frame:expandTemplate{ title = 'CatAutoTOC', args = { align = 'center' } } end local function redCatCheck( cat ) --cat == 'Blah' (not 'Category:Blah', '[[Category:Blah]]', etc.) if cat and cat ~= '' and mw.title.new(cat, 14).exists == false then return '[[Category:Pages with red-linked authority control categories]]' end return '' end local function addCat( cat, id ) if id and id ~= '' then return '[[Category:'..cat..'|'..id..']]'..redCatCheck(cat) else return '[[Category:'..cat..']]'..redCatCheck(cat) end end --For use in [[Category:Articles with authority control information]], i.e. on [[Category:Articles with VIAF identifiers]] local function wp( frame, id ) for _, conf in pairs( ac_conf ) do if conf.category == id or conf[1] == id then local linktarget = conf.link or conf[1]..' (identifier)' local link = '[['..linktarget..'|'..conf[1]..']]' local wdpl = ':d:Property:P'..conf[2] local example = 'The '..conf[1]..' identifier appears as '.. rmCats(conf[3](conf[5]))..' in the '..conf[4]..' section.' local txCatExplain = frame:expandTemplate{ title = 'Category explanation', args = {'articles with '..link..' identifiers.'..example..' Please do not add [[Wikipedia:Categorization#Subcategorization|subcategories]].'} } local txCatMore = frame:expandTemplate{ title = 'Cat more', args = {'Wikipedia:Authority control', wdpl} } local txEmptyCat = frame:expandTemplate{ title = 'Possibly empty category' } local txWPCat = frame:expandTemplate{ title = 'Wikipedia category', args = { hidden = 'yes', tracking = 'yes' } } local txTOC = whichTOC( frame ) local wpCat = 'Articles with authority control information' local outString = txCatExplain..txCatMore..txEmptyCat..txWPCat..txTOC..'\n'..'Pages in this category should only be added by [[Module:Authority control]].'..addCat(wpCat, id) return outString end end return '' end --For use in [[Category:Articles with faulty authority control information]], i.e. on [[Category:Articles with faulty VIAF identifiers]] local function wpfaulty( frame, id ) for _, conf in pairs( ac_conf ) do if conf.category == id or conf[1] == id then local linktarget = conf.link or conf[1]..' (identifier)' local wdpl = ':d:Property:P'..conf[2] local txCatMore = frame:expandTemplate{ title = 'Cat more', args = {'Wikipedia:Authority control', linktarget, wdpl} } local txEmptyCat = frame:expandTemplate{ title = 'Possibly empty category' } local txWPCat = frame:expandTemplate{ title = 'Wikipedia category', args = { hidden = 'yes', tracking = 'yes' } } local txDirtyCat = frame:expandTemplate{ title = 'Polluted category' } local txTOC = whichTOC( frame ) local idCat = 'Articles with '..id..' identifiers' local wpfCat = 'Articles with faulty authority control information' local outString = txCatMore..txEmptyCat..txWPCat..txDirtyCat..txTOC..'\n'.. 'Pages in this category should only be added by [[Module:Authority control]].'.. addCat(idCat)..addCat(wpfCat, id) return outString end end return '' end -- Main/External Call function p.autoDetect( frame ) if currentTitle.namespace == 14 then --cat space local wpfaultyID = mw.ustring.match(title, 'Articles with faulty ([%w%.%- ]+) identifiers') local wpID = mw.ustring.match(title, 'Articles with ([%w%.%- ]+) identifiers') if wpfaultyID then return wpfaulty( frame, wpfaultyID ) --must be before wpID check, in case they both match elseif wpID then return wp( frame, wpID ) --to keep the regex simple else return '[[Category:Pages with authority control identifiers unknown category]]' end end return '' end return p