打开主菜单
首页
随机
登录
设置
关于Arcaea中文维基
免责声明
搜索
查看“Module:AnotherTool”的源代码
←
Module:AnotherTool
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
-- 合并了若干个基本没有环境变量的en wikipedia模块 local lang = mw.language.getContentLanguage() local getArgs = require 'Module:Arguments'.getArgs local p = {} -- [*[https://en.wikipedia.org/wiki/Module:Purge, 供养{{Purge}}]*] local function purge(args) -- Make the URL local url do local title if args.page then title = mw.title.new(args.page) if not title then error(string.format( "'%s'不是有效的页面名称", args.page ), 2) end else title = mw.title.getCurrentTitle() end if args.jumpto then title.fragment = args.jumpto end url = title:fullUrl {action = 'purge'} -- &_={{CURRENTTIMESTAMP}} end -- Make the display local purgeText, purgeTitle = args[1] or '清除缓存', args[2] or '更新服务器所缓存的页面数据' local display if args.page then display = purgeText else display = tostring(mw.html.create 'span' :attr('title', purgeTitle) :wikitext(purgeText) ) end -- Output the HTML local root = mw.html.create 'span' root :addClass 'noprint' -- :addClass 'plainlinks' -- :addClass 'purgelink' :wikitext(('[%s %s]'):format(url, display)) return tostring(root) end -- [*[https://en.wikipedia.org/wiki/Module:Countdown, 供养{{倒计时}}]*] local function formatMessage(secondsLeft, event, color) local chosenIntervals if secondsLeft >= 86400 then chosenIntervals = {'days', 'hours'} elseif secondsLeft >= 3600 then chosenIntervals = {'hours'} else chosenIntervals = {'minutes', 'seconds'} end local timeLeft = lang:formatDuration(secondsLeft, chosenIntervals) -- Color and bold the numbers, because it makes them look important. timeLeft = string.gsub(timeLeft, '(%d+)', '<span style="color: ' .. (color or '#66F') .. '; font-weight: bold;">%1</span>') return string.format('距离%s尚余%s', event, timeLeft) end local function countdown(args) if not (args.month and args.day) then return '<strong class="error">错误:必须指定 month 和 day</strong>' end local timeArgs = {year = args.year or os.date '*t'.year, month = args.month, day = args.day, hour = args.hour, min = args.minute, sec = args.second} for k, v in pairs(timeArgs) do if not tonumber(v) then error('参数' .. k .. '无法解析为数字:' .. v) end end local eventTime = os.time(timeArgs) local timeToStart = os.difftime(eventTime, os.time()) -- (future time - current time) local text if timeToStart > 0 then -- Event has not begun yet text = formatMessage(timeToStart, args.event or '这次事件', args.color) elseif args.duration then local timeToEnd if args['duration unit'] then -- Duration is in unit other than seconds, use formatDate to add timeToEnd = tonumber(lang:formatDate('U', '@' .. tostring(timeToStart) .. ' +' .. tostring(args.duration) .. ' ' .. args['duration unit'])) else timeToEnd = timeToStart + (tonumber(args.duration) or error('args.duration应该是秒数', 0)) end if timeToEnd > 0 then -- Event is in progress text = args.eventstart or formatMessage(timeToEnd, (args.event or '这次事件') .. '完结', args.color) else -- Event had a duration and has now ended text = args.eventend or ((args.event or '这次事件') .. '已完结') end else -- Event had no duration and has begun -- 已经开始? text = args.eventend or ((args.event or '这次事件') .. '已完结') end local refreshLink if args.purge then refreshLink = '<small>' .. purge '更新' .. '</small>' else refreshLink = '' end return text .. refreshLink end -- [*[https://en.wikipedia.org/wiki/Module:Separated_entries, 供养{{多行分离}}]*] local function separatedEntries(args) local compressSparseArray = require 'Module:TableTools'.compressSparseArray local separator = args.separator -- Decode (convert to Unicode) HTML escape sequences, such as " " for space. and mw.text.decode(args.separator) or '' -- Discard values before the starting parameter. local start = tonumber(args.start) if start then for i = 1, start - 1 do args[i] = nil end end -- Discard named parameters. local values = compressSparseArray(args) return mw.text.listToText(values, separator, separator) end -- [*[供养{{Break lines}}]*] function p.breakLines(frame) local args = frame.args local text = args[1] local doublets = args['doublets'] -- poem -- text = mw.ustring.gsub(text, '(.?)%f[:](:+)', function(pre, main) -- if pre ~= '' and pre ~= '\n' then return pre .. main end -- return pre .. '<span style="display: inline-block; margin-inline-start: ' .. string.len(main) .. 'em;"></span>' -- end) if doublets == 'p' then return mw.ustring.gsub(text, '\n+', function(s) return s == '\n' and '<br>' or s end ) end text = mw.ustring.gsub(text, '\n', '<br>') return text end local function makeInvokeFunc(func, opt) return function(frame) local args = getArgs(frame, opt) return func(args) end end p.countdown = makeInvokeFunc(countdown) p.purge = makeInvokeFunc(purge, {parentOnly = true}) p.separatedEntries = makeInvokeFunc(separatedEntries) return p
本页使用的模板:
Module:AnotherTool/doc
(
查看源代码
)
返回
Module:AnotherTool
。