Module:EditState: Difference between revisions
1>Xiplus-abot m (已更改“Module:EditState”的保护设置:高風險模板:393826引用<!-- 機器人3 -->([编辑=仅允许管理员](无限期)[移动=仅允许管理员](无限期))) |
m (1 revision imported) |
(No difference)
|
Latest revision as of 12:17, 23 April 2025
local p={} local lib_arg={}; local yesno = {}
function p.isPreview() local frame = mw.getCurrentFrame() local check_str = '337' if mw.isSubsting() then check_str = "337" end local Preview_mode = frame:preprocess(check_str); -- use magic word to get revision id return (Preview_mode == nil or mw.text.trim(Preview_mode or ) == ) -- if there is a value then this is not a preiview end
function p.previewNotice(frame) if mw.isSubsting() then return end local text = if type(frame) == type('string') then --type('string') avoid version change text = mw.text.trim(frame) else if type((frame or {}).args) ~= type({}) then frame.args = {} end text = mw.text.trim(frame.args['1'] or frame.args[1] or frame.args.text or frame['1'] or frame[1] or frame.text or ) end text = mw.text.trim(text) if text ~= then mw.addWarning(text) end return end
function p.isCreating() local frame = mw.getCurrentFrame() local check_str = '204' if mw.isSubsting() then check_str = "204" end local Preview_mode = frame:preprocess(check_str); return (Preview_mode == nil or mw.text.trim(Preview_mode or ) == ) end
function p.hasParent(layer) local frame = mw.getCurrentFrame() local times = tonumber(layer or ) or 0 local Parent = frame:getParent(); for i=2,tonumber(times) do Parent = Parent:getParent() if Parent == nil then break end end return not (Parent == nil or Parent == ) end
function p.getTitle(layer) local frame = mw.getCurrentFrame() local times = tonumber(layer or ) or 0 if times <= 0 then return frame:getTitle()end local Parent = frame:getParent(); for i=2,tonumber(times) do Parent = Parent:getParent() if Parent == nil then return end end return Parent:getTitle(); end
function p.nextSubst(frame) local args, working_frame
if frame == mw.getCurrentFrame() then -- We're being called via #invoke. The args are passed through to the module -- from the template page, so use the args that were passed into the template. if lib_arg.getArgs == nil then lib_arg = require('Module:Arguments') end args = lib_arg.getArgs(frame, { parentFirst=true, trim = false,
removeBlanks = false
}) working_frame = frame else -- We're being called from another module or from the debug console, so assume -- the args are passed in directly. args = frame working_frame = mw.getCurrentFrame() if type(args) ~= type({}) then args = {frame} end end local input_data = args[1] or args['1'] if mw.text.trim(input_data or ) == then return end local num_args = {}
for key,value in pairs(args) do local num = tonumber(key) or 0 local stored = false if num then if num > 1 then num_args[key - 1] = value stored = true end if num == 1 then stored = true end end if stored ~= true then num_args[key] = value end end local str_args = mw.ustring.sub(require('Module:Template invocation').invocation(input_data, num_args),3,-3) if(mw.isSubsting())then return "{{subst:" .. str_args .. "}}" ; end return working_frame:preprocess("Template:" .. str args .. "") end
return p