有兽档案馆
搜索
切换搜索
切换菜单
切换个人菜单
查看“Module:Delete”的源代码
来自有兽档案馆
阅读
查看源代码
查看历史
模块
讨论
更多操作
←
Module:Delete
因为以下原因,您没有权限编辑该页面:
您所请求的操作,仅限具有
注册用户
、
自动确认用户
、
管理员
、
界面管理员
、
优质编辑者
、
确认用户
、
巡查员
、
档案理事员
等
权限
的
用户
执行。
若您尚未登录有兽档案馆账号,请您
登录
有兽档案馆账号后操作。
您尚未完成电子邮件确认,因此操作受限,请尽快
完成电子邮件确认
。
若您无法完成前述手续,请通过适当渠道请求管理员或档案理事员协助。
您可以查看和复制此页面的源代码。
若您无权编辑本页面,您可以
提出编辑请求
,提请有权限者代为编辑。
local data = require('Module:Delete/data') local z = {} function extractAliases(item) allnames = {item['code']} for j, alias in ipairs(item['aliases']) do table.insert(allnames, alias) end return allnames end function extractShortDesc(item) if item['description'] then return item['description']:gsub('{', '{'):gsub('}', '}'):gsub('|', '|') else return '' end end function extractDeleteReason(item) return item['deletereason'] or item['criteria'] or '' end function shortDesc(frame, name) name = mw.text.trim(name):upper() wt = {} for i, item in ipairs(data) do if name == '' or #name == 1 and item['code']:sub(1, 1) == name or item['code'] == name then para = extractShortDesc(item) if para ~= '' then table.insert(wt, para) end end end if short then return table.concat(wt, '\n') else return frame:preprocess(table.concat(wt, '\n')) end end function z.shortDesc(frame) return shortDesc(frame, frame.args[1]) end function z.reasons(frame) wt = {} for i, item in ipairs(data) do if item['code'] == 'G8' then -- 在提示選單隱藏G8 else allnames = extractAliases(item) table.insert(wt, '<tr><td>' .. mw.text.listToText(allnames, '、', '或') .. '<td title="' .. extractShortDesc(item) .. '">' .. item['criteria'] .. '</td>') end end return '<table class="wikitable">' .. table.concat(wt) .. '</table>' end function clone(t) local n = {} for k, v in pairs(t) do if type(v) == type({}) then n[k] = clone(v) else n[k] = v end end setmetatable(n, getmetatable(t)) return n end local title = mw.title.getCurrentTitle() function z._input(args, options) options = options or {} -- precache local map = {} for i, item in ipairs(options.data or data) do map[item['code']:lower()] = i for j, alias in ipairs(item['aliases']) do map[alias:lower()] = i end end -- parse local i = 1 local rows = {} while options.maxArgs and (i < options.maxArgs) or true do local arg = args[i] local item if arg and map[mw.text.trim(arg:lower())] then item = clone(data[map[mw.text.trim(arg:lower())]]) checkfunc = item['check'] if options.checkFunc and checkfunc then item['check'] = checkfunc(title) else item['check'] = nil end -- special case for F1/F5 if options.checkFile and (item['code'] == 'F1' or item['code'] == 'F5') then i = i + 1 local img if args[i] then img = mw.text.trim(args[i]) else img = nil end local success, imgtitle if img and img ~= '' then success, imgtitle = pcall(mw.title.new, img, 'Media') else imgtitle = nil end if success and imgtitle then item['imgLink'] = ':[[:File:' .. imgtitle.text .. ']]' else item['imgLink'] = nil end end elseif arg and mw.text.trim(arg) ~= '' then item = { code = '', criteria = arg } else if not options.maxArgs or i > 20 then -- 防止無限迴圈 break end item = { code = nil, criteria = nil } end arg = args['c' .. i] if options.parseCommit and arg and mw.text.trim(arg) ~= '' then item['commit'] = arg end table.insert(rows, item) i = i + 1 end if #rows > 0 then return rows else return nil end end function z.input(frame) if frame.args.parent then args = frame:getParent().args else args = frame.args end local rows = z._input(args, { maxArgs = 10, checkFunc = true, checkFile = true, parseCommit = true }) if not rows then return frame.args.deletelink and '' or '<span style="font-weight:bold;color:red;">(請填寫理由)</span>' .. (args.cat or args.cate or args.category or '[[Category:快速删除候选|错]]') elseif frame.args.reasoncode then return rows[1]['code'] or '' end local deletelinks = {} local outputs = {} local cat for _, item in ipairs(rows) do if item['code'] and item['code'] ~= '' then local rowsuffix = '' local rowsuffix2 = '' local deletesuffix = '' -- special case for F1/F5 if item['code'] == 'F1' or item['code'] == 'F5' then if item['imgLink'] then deletesuffix = item['imgLink'] else if item['check'] then rowsuffix2 = '<br><span class="error">為方便管理員檢查,請加上保留檔案的名稱。</span>' else item['check'] = '為方便管理員檢查,請加上保留檔案的名稱。' end end end -- special case for O1/G10 in user namespace, see Wikipedia:机器人/申请/Xiplus-abot/8 if title.namespace == 2 and (item['code'] == 'O1' or item['code'] == 'G10') then rowsuffix2 = args.cat or args.cate or args.category or ('[[Category:O1快速删除候选]]') end if item['check'] then rowsuffix = '<br><span class="error">' .. item['check'] .. '</span>' .. (args.cat or args.cate or args.category or '[[Category:快速删除候选|错]]') else if frame.args.deletelink then table.insert(deletelinks, '[[WP:CSD#' .. item['code'] .. '|' .. item['code'] .. ']]: ' .. extractDeleteReason(item) .. deletesuffix) end rowsuffix = args.cat or args.cate or args.category or ('[[Category:快速删除候选|' .. (item['category'] or '速') .. ']]') end table.insert(outputs, '* <strong><span id="speedy-delete-' .. item['code'] .. '" title="' .. extractShortDesc(item) .. '">' .. item['criteria'] .. '([[WP:CSD#' .. item['code'] .. '|CSD ' .. item['code'] .. ']]' .. deletesuffix .. ')' .. rowsuffix .. rowsuffix2 .. '</span></strong>') elseif item['code'] == '' then local arg = item['criteria'] -- try to read it as a title local success, aTitle = mw.title.new(mw.text.trim(arg)) cat = args.cat or args.cate or args.category or '[[Category:快速删除候选|速]]' if aTitle and aTitle.exists then if frame.args.deletelink then table.insert(deletelinks, '[[:' .. arg .. ']]') end table.insert(outputs, '*<strong>' .. cat .. '[[:' .. arg .. ']]</strong>') else if frame.args.deletelink then table.insert(deletelinks, arg) end arg = string.gsub(arg, '^([*:#]*)(.*)', '%1<strong>%2</strong>') table.insert(outputs, '*' .. cat .. arg) end end if item['commit'] then table.insert(outputs, '*' .. item['commit']) end end -- for use by Twinkle if frame.args.deletelink then return mw.text.trim(table.concat(deletelinks, ';'):gsub('。;', ';'):gsub('。:', ':')) else return mw.text.trim(table.concat(outputs, '\n')) end end return z
该页面使用的模板:
Module:Arguments
(
查看源代码
)
Module:Delete
(
查看源代码
)
Module:Delete/doc
(
查看源代码
)
Module:Documentation
(
查看源代码
)
Module:Fullurl
(
查看源代码
)
Module:No globals
(
查看源代码
)
Module:Page name
(
查看源代码
)
Module:Template:Delete
(
查看源代码
)
Module:Template:Delete/data
(
查看源代码
)
Module:Yesno
(
查看源代码
)
返回
Module:Delete
。