匿名利用者
“モジュール:Lua banner” のwerson間の差分
モジュール:Lua banner (Ipemoto a=nukar)
2023 ppm 8 2023-08-12T13:18:47+00:00up 12 312023 (Toy.) 13:18時点におけるwerson
、 2023 ppm 8 2023-08-12T13:18:47+00:00up 12 312023 (Toy.)已从en:Module:Lua_banner导入21个版本
(「luaモジュール」と言葉はまだ普及しておらず「使用luaモジュール」では何を言ってるのかわからないので変更しました。使用しているluaモジュールでもいいのですが、luaモジュールを前面) |
細 (已从en:Module:Lua_banner导入21个版本) |
||
1行目: | 1行目: | ||
-- | --[=[ | ||
本模块由[[Template:Lua]]调用 | |||
暂无模块调用 | |||
/****************************/ | |||
本模組由[[Template:Lua]]調用 | |||
暫無模組調用 | |||
]=]-- | |||
local yesno = require('Module:Yesno') | local yesno = require('Module:Yesno') | ||
17行目: | 25行目: | ||
end | end | ||
end | end | ||
return p._main(args) | return p._main(frame, args) | ||
end | end | ||
function p._main(args) | function p._main(frame, args) | ||
local modules = mTableTools.compressSparseArray(args) | local modules = mTableTools.compressSparseArray(args) | ||
local box = p.renderBox(modules) | local box = p.renderBox(modules) | ||
26行目: | 34行目: | ||
return box .. trackingCategories | return box .. trackingCategories | ||
end | end | ||
-- if action=edit | |||
function p.main2(frame) | |||
local origArgs = frame:getParent().args | |||
local args = {} | |||
for k, v in pairs(origArgs) do | |||
v = v:match('^%s*(.-)%s*$') | |||
if v ~= '' then | |||
args[k] = v | |||
end | |||
end | |||
local modules = mTableTools.compressSparseArray(args) | |||
return p.renderBox(modules) | |||
end | |||
--end | |||
function p.renderBox(modules) | function p.renderBox(modules) | ||
local boxArgs = {} | local boxArgs = {} | ||
if #modules < 1 then | if #modules < 1 then | ||
boxArgs.text = '<strong class="error"> | boxArgs.text = '<strong class="error">错误:未指定-{zh-hans:模块; zh-hant:模組;}-</strong>' | ||
else | else | ||
local moduleLinks = {} | local moduleLinks = {} | ||
for i, module in ipairs(modules) do | for i, module in ipairs(modules) do | ||
moduleLinks[i] = string.format('[[:%s]]', | moduleLinks[i] = string.format('%s', module) | ||
moduleLinks[i] = '[[:Module:' .. mw.title.new(moduleLinks[i]).text .. ']]' | |||
local maybeSandbox = mw.title.new(module .. '/sandbox') | |||
if maybeSandbox.exists then | |||
moduleLinks[i] = moduleLinks[i] .. string.format('([[:%s|沙盒]])', maybeSandbox.fullText) | |||
end | |||
end | end | ||
local moduleList = mList.makeList('bulleted', moduleLinks) | local moduleList = mList.makeList('bulleted', moduleLinks) | ||
boxArgs.text = '[[Wikipedia:Lua| | boxArgs.text = '此' .. | ||
(mw.title.getCurrentTitle():inNamespaces(828,829) and '-{zh-hans:模块; zh-hant:模組;}-' or '模板') .. | |||
'使用[[Wikipedia:Lua|Lua语言]]:\n' .. moduleList | |||
end | end | ||
boxArgs.type = 'notice' | boxArgs.type = 'notice' | ||
boxArgs.small = true | boxArgs.small = true | ||
boxArgs.image = '[[File:Lua- | boxArgs.image = '[[File:Lua-Logo.svg|30px|alt=|link=]]' | ||
return mMessageBox.main('mbox', boxArgs) | return mMessageBox.main('mbox', boxArgs) | ||
end | end | ||
52行目: | 81行目: | ||
local cats = {} | local cats = {} | ||
-- | -- 错误分类 | ||
if #modules < 1 then | if #modules < 1 then | ||
cats[#cats + 1] = '' | cats[#cats + 1] = '有错误的Lua模板' | ||
end | end | ||
70行目: | 99行目: | ||
local category = args.category | local category = args.category | ||
if not category then | if not category then | ||
local categories = { | local categories = { | ||
['Module:String'] = '', | ['Module:String'] = '使用Module:String的模板', | ||
['Module:Math'] = '', | --['Module:Math'] = '使用LuaMath的模板', | ||
['Module:BaseConvert'] = '', | --['Module:BaseConvert'] = '使用LuaBaseConvert的模板', | ||
['Module:Citation'] = '' | --['Module:Citation'] = '使用LuaCitation的模板' | ||
} | } | ||
categories['Module:Citation/CS1'] = categories['Module:Citation'] | categories['Module:Citation/CS1'] = categories['Module:Citation'] | ||
category = modules[1] and categories[modules[1]] | category = modules[1] and categories[modules[1]] | ||
category = category or 'x' | |||
category = category or ' | |||
end | end | ||
cats[#cats + 1] = category | cats[#cats + 1] = category | ||
local protLevels = { | |||
autoconfirmed = 1, | |||
extendedconfirmed = 2, | |||
templateeditor = 3, | |||
sysop = 4 | |||
} | |||
local currentProt = titleObj.protectionLevels["edit"][1] | |||
if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end | |||
for i, module in ipairs(modules) do | |||
if mw.title.new(module).protectionLevels["edit"] then | |||
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] = "使用受保护Lua模块的模板" | |||
break | |||
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.gsub(string.format('[[Category:%s]]', cat), '%[%[Category:x%]%]', '') | ||
end | end | ||
return table.concat(cats) | return table.concat(cats) .. '[[Category:Lua模板]]' | ||
end | end | ||
return p | return p |