Line 34: |
Line 34: |
| for i, module in ipairs(modules) do | | for i, module in ipairs(modules) do |
| moduleLinks[i] = string.format('[[:%s]]', module) | | moduleLinks[i] = string.format('[[:%s]]', module) |
| + | local maybeSandbox = mw.title.new(module .. '/sandbox') |
| + | if maybeSandbox.exists then |
| + | moduleLinks[i] = moduleLinks[i] .. string.format(' ([[:%s|sandbox]])', maybeSandbox.fullText) |
| + | end |
| end | | end |
| local moduleList = mList.makeList('bulleted', moduleLinks) | | local moduleList = mList.makeList('bulleted', moduleLinks) |
− | boxArgs.text = 'This ' .. | + | local title = mw.title.getCurrentTitle() |
− | (mw.title.getCurrentTitle():inNamespaces(828,829) and 'module' or 'template') .. | + | if title.subpageText == "doc" then |
− | ' uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList | + | title = title.basePageTitle |
| + | end |
| + | if title.contentModel == "Scribunto" then |
| + | boxArgs.text = 'This module depends on the following other modules:' .. moduleList |
| + | else |
| + | boxArgs.text = 'This template uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList |
| + | end |
| end | | end |
| boxArgs.type = 'notice' | | boxArgs.type = 'notice' |
| boxArgs.small = true | | boxArgs.small = true |
− | boxArgs.image = '[[File:Lua-logo-nolabel.svg|30px|alt=|link=]]' | + | boxArgs.image = '[[File:Lua-Logo.svg|30px|alt=|link=]]' |
| return mMessageBox.main('mbox', boxArgs) | | return mMessageBox.main('mbox', boxArgs) |
| end | | end |
Line 50: |
Line 60: |
| return '' | | return '' |
| end | | end |
− |
| + | |
| local cats = {} | | local cats = {} |
− |
| + | |
| -- Error category | | -- Error category |
| if #modules < 1 then | | if #modules < 1 then |
| cats[#cats + 1] = 'Lua templates with errors' | | cats[#cats + 1] = 'Lua templates with errors' |
| end | | end |
− |
| + | |
| -- Lua templates category | | -- Lua templates category |
| titleObj = titleObj or mw.title.getCurrentTitle() | | titleObj = titleObj or mw.title.getCurrentTitle() |
Line 66: |
Line 76: |
| testcases = true | | testcases = true |
| } | | } |
− | if titleObj.namespace == 10 | + | if not subpageBlacklist[titleObj.subpageText] then |
− | and not subpageBlacklist[titleObj.subpageText]
| + | local protCatName |
− | then
| + | if titleObj.namespace == 10 then |
− | local category = args.category
| + | local category = args.category |
− | if not category then
| + | if not category then |
− | local categories = {
| + | local categories = { |
− | ['Module:String'] = 'Lua String-based templates',
| + | ['Module:String'] = 'Templates based on the String Lua module', |
− | ['Module:Math'] = 'Templates based on the Math Lua module',
| + | ['Module:Math'] = 'Templates based on the Math Lua module', |
− | ['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module',
| + | ['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module', |
− | ['Module:Citation'] = 'Lua-based citation templates' | + | ['Module:Citation'] = 'Templates based on the Citation/CS1 Lua module' |
| + | } |
| + | categories['Module:Citation/CS1'] = categories['Module:Citation'] |
| + | category = modules[1] and categories[modules[1]] |
| + | category = category or 'Lua-based templates' |
| + | end |
| + | cats[#cats + 1] = category |
| + | protCatName = "Templates using under-protected Lua modules" |
| + | elseif titleObj.namespace == 828 then |
| + | protCatName = "Modules depending on under-protected modules" |
| + | end |
| + | if not args.noprotcat and protCatName then |
| + | local protLevels = { |
| + | autoconfirmed = 1, |
| + | extendedconfirmed = 2, |
| + | templateeditor = 3, |
| + | sysop = 4 |
| } | | } |
− | categories['Module:Citation/CS1'] = categories['Module:Citation'] | + | local currentProt |
− | category = modules[1] and categories[modules[1]] | + | if titleObj.id ~= 0 then |
− | category = category or 'Lua-based templates'
| + | -- id is 0 (page does not exist) if am previewing before creating a template. |
− | end
| + | currentProt = titleObj.protectionLevels["edit"][1] |
− | cats[#cats + 1] = category
| + | end |
− | local protLevels = {
| + | if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end |
− | autoconfirmed = 1,
| + | for i, module in ipairs(modules) do |
− | extendedconfirmed = 2,
| + | if module ~= "WP:libraryUtil" then |
− | templateeditor = 3,
| + | local moduleProt = mw.title.new(module).protectionLevels["edit"][1] |
− | sysop = 4
| + | if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end |
− | }
| + | if moduleProt < currentProt then |
− | local currentProt = titleObj.protectionLevels["edit"][1]
| + | cats[#cats + 1] = protCatName |
− | if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end
| + | break |
− | for i, module in ipairs(modules) do
| + | end |
− | local moduleProt = mw.title.new(module).protectionLevels["edit"][1]
| + | end |
− | if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end
| |
− | if moduleProt < currentProt then
| |
− | cats[#cats + 1] = "Templates using under-protected Lua modules"
| |
− | break | |
| end | | end |
| end | | end |
| end | | end |
− |
| |
| for i, cat in ipairs(cats) do | | for i, cat in ipairs(cats) do |
| cats[i] = string.format('[[Category:%s]]', cat) | | cats[i] = string.format('[[Category:%s]]', cat) |