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) |