Jump to content

解析器函数扩展

本頁使用了標題或全文手工轉換
From mediawiki.org
This page is a translated version of the page Parser function extensions and the translation is 100% complete.
魔术字

解析器函数”是一种類模板式的构思,它會根据一个以上的未命名参数返回一个值,该参数与函数名之间以冒号[:]分隔。 也可能是有更多的参数;就像普通模板一样,这些额外的参数每个前面都由一个“管道”符号[|]引导。 如果函数名以井号字符[#]开头(这可以避免与命名空间或跨维基的前缀相牴觸),这个字符可能會也可能不會被视为是名称的一部份。 如果它被视为名称的一部份,其语法的形式如下:

{{functionname: argument 1 | argument 2 | argument 3...}}
若呼叫者提供給解析函數的是沒有參數,則其形式單純為{{functionname:}};或是,當需使用井號符號(是正常的情況)時,則形式為 {{#functionname:}}。若是末尾未提供冒號,則解析器將無法識別functionname

參數不能直接包含有"|"或"}}",除非作為模板呼叫、解析器函式呼叫、變數、連結、或圖片...的程式碼的一部份,但參數卻可使用模板(例如m:Template:!)或解析器函式來任意包含這些元素。

程式碼可指定函式名稱是否區分大小寫。

參數彼此之間的分隔是使用"|"符號、而與函數名稱之間的分隔則是使用第一個":"。這些片段的展開機制是遵循標準規範,如同在Special:ExpandTemplates的情形一樣(順帶一提,若您正在學習相關知識,此處是絕佳的實驗場地),其運作方式不受解析器函數本身的控制。

然而,其餘所有的設定皆可針對每個解析器函數個別調整,包括:

  • 參數是否僅是一個值,或以「參數名稱」=「參數值」等形式,或其他任何形式
  • 若適用,參數名稱是否區分大小寫

由解析器函式擴充功能所規定的語法

鑒於上述情況,製作一個擴充功能以確保參數中所使用的語法「不會」包含管道符號"|"或是雙花括号(更具體地說,是閉合的雙花括号 "}}")是有好處的。 儘管如此,管道符號本應是表示選擇或聯合等概念的合適符號(請參見,例如 [1])。 允許此類的程式碼是無害的,只要同時允許替代的程式碼,例如將"\"用於"|"。

函數列表

扩展 函數 MediaWiki版本
built-in lc 1.7+
built-in uc 1.7+
built-in lcfirst 1.7+
built-in ucfirst 1.7+
built-in urlencode 1.7+
built-in anchorencode 1.8+
built-in localurl 1.7+
built-in fullurl 1.7+
built-in #language 1.7+
built-in #special 1.9+
built-in #tag 1.12+
ParserFunctions (usage ) #expr 1.19+
ParserFunctions (usage ) #ifexpr 1.19+
ParserFunctions (usage ) #if 1.19+
ParserFunctions (usage ) #ifeq 1.19+
ParserFunctions (usage ) #ifexist 1.19+
ParserFunctions (usage ) #rel2abs 1.19+
ParserFunctions (usage ) #titleparts 1.19+
ParserFunctions (usage ) #switch 1.19+
ParserFunctions (usage ) #time 1.19+
AddScriptCss #addscript Archived
数组 #arraydefine 1.23+
数组 #arraydiff 1.23+
数组 #arrayindex 1.23+
数组 #arrayintersect 1.23+
数组 #arraymerge 1.23+
数组 #arrayprint 1.23+
数组 #arrayreset 1.23+
数组 #arraysearch 1.23+
数组 #arraysearcharray 1.23+
数组 #arraysize 1.23+
数组 #arrayslice 1.23+
数组 #arraysort 1.23+
数组 #arraytohash 1.23+
数组 #arrayunion 1.23+
数组 #arrayunique 1.23+
数组 #hashtoarray 1.23+
Attachments #attach 1.31+
Attachments #exturl 1.31+
Babel(巴别) #babel 1.30+
CSS #css 1.25+
Coordinate #coordinate Archived
Counter #+ 1.15+
Data #data Archived
Data #sort Archived
DynamicFunctions #arg Archived
DynamicFunctions #ip Archived
DynamicFunctions #rand Archived
DynamicFunctions #skin Archived
DynamicPageList (第三方) #dpl Archived
DynamicPageList3 #dpl 1.39+
ExpandAfter #expandafter (deprecated , see: #tag) Archived
ForeachFunction #foreachx Archived
ForeachFunction #foreachy Archived
HasCategory #ifhascat Archived
HideNamespace #hidens Archived
HideNamespace #unhidens Archived
ImageLink #img (old: #imagelink, deprecated ) Archived
Infobox Data Capture #dataentry Archived
Infobox Data Capture #listsplit Archived
InterWikiLinkManager #iwl Archived
KeyValue #keyvalue Archived
Labeled Section Transclusion(标记式章节嵌入) #lst 1.25+
Labeled Section Transclusion(标记式章节嵌入) #lstx 1.25+
Labeled Section Transclusion(标记式章节嵌入) #lsth 1.25+
LoopFunctions #for 1.23+
LoopFunctions #foreach 1.25+
Loops(循环) #while 1.25+
Loops(循环) #dowhile 1.25+
Loops(循环) #forargs 1.25+
Loops(循环) #fornumargs 1.25+
Loops(循环) #loop 1.25+
Maps(地图) #geocode 1.27+
Maps(地图) #display_map 1.27+
Maps(地图) #display_point 1.27+
Maps(地图) #coordinates 1.27+
Maps(地图) #distance 1.27+
MediaFunctions #media.. 1.23+
PageAfterAndBefore #pagebefore Archived
PageAfterAndBefore #pageafter Archived
PageAfterAndBefore #firstpage Archived
PageAfterAndBefore #lastpage Archived
PageFunctions #pagetitle Archived
PageFunctions #pagesubtitle Archived
PageFunctions #pageexists Archived
PageFunctions #varset Archived
PageFunctions #varget Archived
PageFunctions #varcapset Archived
PageFunctions #cshow Archived
PageFunctions #varaset Archived
PageFunctions #varaget Archived
ParserFunctions (extended) #expr (extended) Archived
ParserFunctions (extended) #ifexpr (extended) Archived
ParserFunctions (extended) #min Archived
ParserFunctions (extended) #max Archived
ParserFunctions (extended) #if Archived
ParserFunctions (extended) #ifeq Archived
ParserFunctions (extended) #ifexist Archived
ParserFunctions (extended) #rel2abs Archived
ParserFunctions (extended) #switch Archived
ParserFunctions (extended) #time Archived
Pipe Escape #! 1.23+
QPoll #qpuserchoice Archived
RegexTools #regex Archived
RegexTools #regex_vars Archived
Scribunto #invoke
SecureProperties #pg Archived
SecureProperties #ps Archived
SecureProperties #pf Archived
SecureProperties #gg Archived
SecureProperties #gs Archived
Semantic MediaWiki(语义 MediaWiki) #ask 1.27+
Semantic MediaWiki(语义 MediaWiki) #concept 1.27+
Semantic MediaWiki(语义 MediaWiki) #info 1.27+
Semantic MediaWiki(语义 MediaWiki) #show 1.27+
Semantic MediaWiki(语义 MediaWiki) #set 1.27+
StringFunctions #len 1.7+
StringFunctions #pos 1.7+
StringFunctions #rpos 1.7+
StringFunctions #sub 1.7+
StringFunctions #pad 1.7+
StringFunctions #replace 1.7+
StringFunctions #explode 1.7+
StringFunctions #urlencode 1.7+
StringFunctions #urldecode 1.7+
TreeAndMenu #tree 1.23+
TreeAndMenu #menu 1.23+
Variables(变量) #vardefine 1.29+
Variables(变量) #vardefineecho 1.29+
Variables(变量) #var 1.29+
Variables(变量) #varexists 1.29+
Variables(变量) #var_final 1.29+
Wikibase Client(Wikibase客户端) #property
Wikibase Client(Wikibase客户端) #statements

參見