| Line 1: |
Line 1: |
| | -- This module implements the {{lua}} template. | | -- This module implements the {{lua}} template. |
| − |
| |
| | local yesno = require('Module:Yesno') | | local yesno = require('Module:Yesno') |
| | local mList = require('Module:List') | | local mList = require('Module:List') |
| Line 37: |
Line 36: |
| | end | | end |
| | local moduleList = mList.makeList('bulleted', moduleLinks) | | local moduleList = mList.makeList('bulleted', moduleLinks) |
| − | boxArgs.text = 'Uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList | + | local title = mw.title.getCurrentTitle() |
| | + | if title.subpageText == "doc" then |
| | + | 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=Lua logo|link=Wikipedia:Lua]]' | + | boxArgs.image = '[[File:Lua-logo-nolabel.svg|30px|alt=|link=]]' |
| | return mMessageBox.main('mbox', boxArgs) | | return mMessageBox.main('mbox', boxArgs) |
| | end | | end |
| Line 49: |
Line 56: |
| | 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 65: |
Line 72: |
| | testcases = true | | testcases = true |
| | } | | } |
| − | if titleObj.namespace == 10 | + | if titleObj.namespace == 10 |
| | and not subpageBlacklist[titleObj.subpageText] | | and not subpageBlacklist[titleObj.subpageText] |
| | then | | then |
| Line 81: |
Line 88: |
| | end | | end |
| | cats[#cats + 1] = category | | cats[#cats + 1] = category |
| | + | local protLevels = { |
| | + | autoconfirmed = 1, |
| | + | extendedconfirmed = 2, |
| | + | templateeditor = 3, |
| | + | sysop = 4 |
| | + | } |
| | + | local currentProt |
| | + | if titleObj.id ~= 0 then |
| | + | -- id is 0 (page does not exist) if am previewing before creating a template. |
| | + | currentProt = titleObj.protectionLevels["edit"][1] |
| | + | end |
| | + | if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end |
| | + | for i, module in ipairs(modules) do |
| | + | local moduleProt = mw.title.new(module).protectionLevels["edit"][1] |
| | + | 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 |
| − |
| + | |
| | 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) |