Movatterモバイル変換


[0]ホーム

URL:


跳转到内容
维基百科自由的百科全书
搜索

模組:Check for unknown parameters/sandbox

维基百科,自由的百科全书
<Module:Check for unknown parameters
这是Module:Check for unknown parameters差异)的沙盒
模块文档[查看] [编辑] [历史] [清除缓存]
警告此模块sandbox被引用於約355,000個頁面
為了避免造成大規模的影響,所有對此模块sandbox的編輯應先於沙盒測試樣例上測試。
測試後無誤的版本可以一次性地加入此模块sandbox中,但是修改前請務必於討論頁發起討論。
模板引用數量會自動更新。
此模块sandbox已被保护。此为高度可见模块sandbox,其已用于大量条目或被频繁替换引用。由于破坏或失误会影响诸多页面,即便细小的改动也可能导致大量服务器负载,因此已被保护,不可编辑。
此模块使用Lua语言

此模块附于模板来检测未知参数的使用。

用法

[编辑]

基本用法

[编辑]
{{#invoke:check for unknown parameters|check|unknown=[[分类:某追踪分类]]|arg1|arg2|...|argN}}

或使用带预览错误信息的参数来排序追踪分类中的条目

{{#invoke:check for unknown parameters|check|unknown=[[Category:某追踪分类|_VALUE_]]|preview=未知参数“_VALUE_”|arg1|arg2|...|argN}}

或直接显示红色错误信息

{{#invoke:check for unknown parameters|check|unknown=<span>不好意思,_VALUE_是什么?</span>|arg1|arg2|...|argN}}

以上代码中,arg1arg2、...、argN为已知参数。任何被使用的未列出参数都会导致模块返回unknown参数中的内容。这样有利于排序追踪列表中的条目,亦有利于提供具体信息。

默认情况下,模块不区分已定义但留空的参数和非空参数。要仅追踪非空参数,请使用|ignoreblank=1

默认情况下,模块忽略空白位置参数。要追踪空白位置参数,请使用|showblankpositional=1

正则表达式

[编辑]

本模块支持正则表达式,可在使用大量有规律格式的参数时使用。如,template:infobox3cols中有

| regexp1 = header[%d][%d]*| regexp2 = label[%d][%d]*| regexp3 = data[%d][%d]*[abc]?| regexp4 = class[%d][%d]*[abc]?| regexp5 = rowclass[%d][%d]*| regexp6 = rowstyle[%d][%d]*| regexp7 = rowcellstyle[%d][%d]*

即可匹配所有headerNUMlabelNUMdataNUMdataNUMadataNUMbdataNUMc、...、rowcellstyleNUM格式的参数,其中NUM为一段数字。

举例

[编辑]
{{Infobox| above = {{{name|}}}| label1 = Height| data1 = {{{height|}}}| label2 = Weight| data2 = {{{weight|}}}| label3 = Website| data3 = {{{website|}}}}}<!--   end infobox, start tracking-->{{#invoke:Check for unknown parameters|check| unknown = [[Category:Some tracking category|_VALUE_]]| preview = unknown parameter "_VALUE_"| name| height | weight| website}}


另请参阅

[编辑]
上述文档嵌入Module:Check for unknown parameters/doc(编辑 |历史)
编者可以在本模块的沙盒(编辑 |差异)和测试样例(创建)页面进行实验。
请在/doc子页面中添加分类。本模块的子页面
-- This module may be used to compare the arguments passed to the parent-- with a list of arguments, returning a specified result if an argument is-- not on the listrequire('strict');localp={}localmapframe_params={'coord','coordinates','id','qid','mapframe','mapframe-area_km2','mapframe-area_mi2','mapframe-caption','mapframe-coord','mapframe-coordinates','mapframe-custom','mapframe-frame-coord','mapframe-frame-coordinates','mapframe-frame-height','mapframe-frame-width','mapframe-geomask','mapframe-geomask-fill','mapframe-geomask-fill-opacity','mapframe-geomask-stroke-color','mapframe-geomask-stroke-colour','mapframe-geomask-stroke-width','mapframe-height','mapframe-id','mapframe-length_km','mapframe-length_mi','mapframe-line','mapframe-line-stroke-color','mapframe-line-stroke-colour','mapframe-marker','mapframe-marker-color','mapframe-marker-colour','mapframe-point','mapframe-population','mapframe-shape','mapframe-shape-fill','mapframe-shape-fill-opacity','mapframe-shape-stroke-color','mapframe-shape-stroke-colour','mapframe-stroke-color','mapframe-stroke-colour','mapframe-stroke-width','mapframe-switcher','mapframe-type','mapframe-width','mapframe-wikidata','mapframe-zoom'}localfunctiontrim(s)returns:match('^%s*(.-)%s*$')endlocalfunctionisnotempty(s)returnsands:match('%S')endlocalfunctionclean(text)-- Return text cleaned for display and truncated if too long.-- Strip markers are replaced with dummy text representing the original wikitext.localpos,truncatedlocalfunctiontruncate(text)iftruncatedthenreturn''endifmw.ustring.len(text)>25thentruncated=truetext=mw.ustring.sub(text,1,25)..'...'endreturnmw.text.nowiki(text)endlocalparts={}forbefore,tag,remainderintext:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()')dopos=remaindertable.insert(parts,truncate(before)..'&lt;'..tag..'&gt;...&lt;/'..tag..'&gt;')endtable.insert(parts,truncate(text:sub(posor1)))returntable.concat(parts)endfunctionp._check(args,pargs)iftype(args)~="table"ortype(pargs)~="table"then-- TODO: error handlingreturnend-- create the list of known args, regular expressions, and the return stringlocalknownargs={}ifisnotempty(args['mapframe_args'])thenfor_,vinipairs(mapframe_params)doknownargs[v]=1endendlocalregexps={}fork,vinpairs(args)doiftype(k)=='number'thenv=trim(v)knownargs[v]=1elseifk:find('^regexp[1-9][0-9]*$')thentable.insert(regexps,'^'..v..'$')endend-- loop over the parent args, and make sure they are on the listlocalignoreblank=isnotempty(args['ignoreblank'])localshowblankpos=isnotempty(args['showblankpositional'])localvalues={}fork,vinpairs(pargs)doiftype(k)=='string'andknownargs[k]==nilthenlocalknownflag=falsefor_,regexpinipairs(regexps)doifmw.ustring.match(k,regexp)thenknownflag=truebreakendendifnotknownflagand(notignoreblankorisnotempty(v))thentable.insert(values,clean(k))endelseiftype(k)=='number'andknownargs[tostring(k)]==nilthenlocalknownflag=falsefor_,regexpinipairs(regexps)doifmw.ustring.match(tostring(k),regexp)thenknownflag=truebreakendendifnotknownflagand(showblankposorisnotempty(v))thentable.insert(values,k..' = '..clean(v))endendend-- add results to the output tableslocalres={}if#values>0thenlocalunknown_text=args['unknown']or'Found _VALUE_, 'ifmw.getCurrentFrame():preprocess("{{REVISIONID}}")==""thenlocalpreview_text=args['preview']ifisnotempty(preview_text)thenpreview_text=require('Module:If preview')._warning({preview_text})elseifpreview_text==nilthenpreview_text=unknown_textendunknown_text=preview_textendfor_,vinpairs(values)do-- Fix odd bug for | = which gets stripped to the empty string and-- breaks category linksifv==''thenv=' 'end-- avoid error with v = 'example%2' ("invalid capture index")localr=unknown_text:gsub('_VALUE_',{_VALUE_=v})table.insert(res,r)endendreturntable.concat(res)endfunctionp.check(frame)localargs=frame.argslocalpargs=frame:getParent().argsreturnp._check(args,pargs)endreturnp
检索自“https://zh.wikipedia.org/w/index.php?title=Module:Check_for_unknown_parameters/sandbox&oldid=90333519
分类:​

[8]ページ先頭

©2009-2025 Movatter.jp