--[=[
这个模块由[[Template:Lua]]调用
暂无模块调用
/****************************/
這個模組由[[Template:Lua]]調用
暫無模組調用
]=]--
local yesno = require('Module:Yesno')
local mList = require('Module:List/sandbox')
local mTableTools = require('Module:TableTools')
local getArgs = require "Module:Arguments".getArgs
local mMessageBox = require('Module:Message box')
local subpageBlacklist = {
doc = true,
sandbox = true,
sandbox2 = true,
testcases = true
}
local p = {}
local function argToLink(t)
-- 将单个参数转化为通往模块的链接。例如将abc转化为模块:Abc|Abc,如果手动添加了模块名字空间也无妨。
local title = mw.title.new(t, 828)
return string.format('[[%s|%s]]',tostring(title),tostring(t))
end
function p.main3(frame)
local args = (getArgs(frame))
local currentTitle = mw.title.getCurrentTitle()
local items = {}
for k,v in mTableTools.sparseIpairs(args) do
table.insert(items, {content = v})
end
if #items==0 then
table.insert(items, {content = subpageBlacklist[currentTitle.subpageText] and currentTitle.baseText or currentTitle.text})
end
return mList.renderList {
items = items,
modify = argToLink
} .. p.renderTrackingCategories(args, args, currentTitle) -- 省略第三个参数titleObj
end
-- function p.main(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
-- return p._main(frame, args)
-- end
-- function p._main(frame, args)
-- local modules = mTableTools.compressSparseArray(args)
-- local box = p.renderBox(modules)
-- local trackingCategories = p.renderTrackingCategories(args, modules)
-- return box .. trackingCategories
-- 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)
-- local boxArgs = {}
-- if #modules < 1 then
-- boxArgs.text = '<strong class="error">错误:没有指定-{zh-hans:模块; zh-hant:模組;}-</strong>'
-- else
-- local moduleLinks = {}
-- for i, module in ipairs(modules) do
-- moduleLinks[i] = string.format('%s', module)
-- moduleLinks[i] = '[[:Module:' .. mw.title.new(moduleLinks[i]).text .. ']]'
-- end
-- local moduleList = mList.makeList('bulleted', moduleLinks)
-- boxArgs.text = '此' ..
-- (mw.title.getCurrentTitle():inNamespaces(828,829) and '-{zh-hans:模块; zh-hant:模組;}-' or '模板') ..
-- '使用[[Qiuwen:Lua|Lua语言]]:\n' .. moduleList
-- end
-- boxArgs.type = 'notice'
-- boxArgs.small = true
-- boxArgs.image = '[[File:Lua-logo-nolabel.svg|30px|alt=|link=]]'
-- return mMessageBox.main('mbox', boxArgs)
-- end
function p.renderTrackingCategories(args, modules, titleObj)
if yesno(args.nocat) then
return ''
end
local cats = {}
-- 错误分类
-- if #modules < 1 then
-- cats[#cats + 1] = '有错误的Lua模板'
-- end
-- Lua templates category
titleObj = titleObj or mw.title.getCurrentTitle()
if titleObj.namespace == 10
and not subpageBlacklist[titleObj.subpageText]
then
cats[#cats + 1] = '基于Lua模块编写的模板'
end
for i, cat in ipairs(cats) do
cats[i] = string.format('[[Category:%s]]', cat)
end
return table.concat(cats)
end
return p