模組:WikidataIB/doc
此頁面為 Module:WikidataIB 的說明文件
| 此頁面是Module:WikidataIB的模組檔案。 此頁面可能包含了模板的使用說明、分類和其他內容。 |
| 此模組檔案已被保護。此高度可見模組檔案具有高風險,或已用於大量頁面或被頻繁替換參照。由於破壞或失誤影響程度嚴重,因此已被保護,只有錯誤:頁面未被保護。可以編輯。 |
| 此模組檔案被參照於約142,000個頁面,佔全部頁面的2%。 為了避免造成大規模的影響,所有對此模組檔案的編輯應先於沙盒或測試樣例上測試。實施修改前,建議先在討論頁發起討論。 模板參照數量會自動更新。 |
| 如需使用本模組的更友好封裝版本,請參見{{wdib}}。 |
此模組是為在{{infobox}}(資訊框)或其他模板中使用而設計,並經專門設計而允許條目編者(而非資訊框模板的編者)控制是否顯示特定的維基數據值。IB為Info Box之縮寫。
應使用兩組沙盒頁面來測試非瑣碎修改。
| 模組 | 測試樣例 | |
|---|---|---|
| 主要 | Module:WikidataIB | Module talk:WikidataIB/testcases |
| 沙盒 | Module:WikidataIB/sandbox(差異) | Module talk:WikidataIB/sandbox/testcases(差異) |
概述
[編輯]本模組提供以下呼叫,供資訊框使用:
getValue——主函式,用於取得指定屬性(property)的值(value)。getQualifierValue——給定屬性、該屬性的值以及限定符(qualifier)的屬性ID,返回匹配的值。getValueByQual——取得具有給定實體(entity)值的限定符的屬性的值(此處底線用於標示一個相對整體,幫助讀者理解,下同)。getValueByLang——取得限定符作品或名稱的語言 (P407)的值包含給定的語言代碼的屬性的值。getValueByRefSource——取得參考文獻載於 (P248)的值包含指定實體ID的屬性的值。getPropOfProp——如果屬性1的值屬於「維基數據專案」類型,則返回這些維基數據專案所對應的屬性2的值。getAwardCat——如果專案包含得獎 (P166),則逐一檢查這些獎項的獲獎者專用分類 (P2517),並返回對應的分類,以專案的姓氏 (P734)作為排序鍵(若無姓氏則不設排序鍵)。getIntersectCat——針對屬性1的每個值取得其主分類,再針對屬性2的每個值進行同樣操作,最終返回所有表示這些屬性交集結果的分類。getSumOfParts——掃描擁有部分 (P527)屬性,匹配給定的列表。若匹配到的值帶有數量 (P1114)限定符,則將這些數量相加並返回(若總和為0則返回空值)。getCoords——取得坐標,並通過{{Coord}}模板進行格式化輸出。getPreferredValue——已棄用,但為向下相容而保留。請改用|getValue|rank=best參陣列合。
已廢棄的getSourcedValue呼叫現已移除,因為getValue通過|onlysourced=true參數(該參數預設啟用)即可實現相同功能。
工具函式
[編輯]getLink——如果本地維基上有指向條目的網站連結,則返回該條目的連結,顯示文字為維基數據標籤;若無網站連結,則返回純文字標籤;若當前語言無對應標籤,則返回實體ID。getAT(條目標題)——如果本地維基上有指向條目的網站連結,則以純文字形式返回該網站連結;否則不返回任何內容。getSiteLink——取得指向指定維基站點的純文字連結。getLabel——以純文字形式返回當前語言的維基數據標籤;若當前語言無標籤,則返回實體ID。getAllLabels——取得全部標籤集合併將其格式化為wikitext以供顯示。labelorid——返回去除所有wikitext後的標籤;若無標籤則返回實體ID。getDescription——若本地參數為「Wikidata」,則返回該維基數據實體的條目描述。getAllDescriptions——取得全部描述集合併將其格式化為wikitext以供顯示。getAliases——返回當前或指定語言下該實體的別名。getAllAliases——取得全部別名集合併將其格式化為wikitext以供顯示。pageId——返回當前頁面所關聯的維基數據頁面ID(即實體ID,QID)。formatDate——接收mw.wikibase.entity:formatPropertyValues輸出的標準格式日期時間,並根據df(日期格式)和bc參數進行格式化。formatNumber——根據指定的語言代碼對數字進行格式化。checkBlacklist——若欄位不在黑名單中(即允許使用),則返回true。emptyor——若參數僅為標點符號、空白字元或HTML標籤,則返回nil;否則原樣返回該參數。getLang——返回當前內容的MediaWiki語言代碼或完整的語言名稱。getItemLangCode——尋找國家 (P17),然後尋找該國家的官方語言 (P37),並返回其維基媒體語言代碼 (P424)。findLanguage——返回:(1)所傳入的語言代碼(若有效);或(2)使用者設定的語言;或(3)當前站點的語言。getQid——返回:(1)所傳入的實體ID(若有);或(2)分類主話題 (P301)的實體ID;或(3)當前頁面關聯的實體ID;或(4)不返回任何內容。followQid——給定屬性列表,依次尋找每個屬性,並返回第一個匹配值的實體ID(可選地,也可返回所有匹配的實體ID)。getGlobe——返回地理坐標 (P625)中所使用的球體的實體ID;若無則返回nil。getCommonsLink——按優先順序返回以下之一:所關聯維基數據項的維基共享資源網站連結;所關聯維基數據項「話題主分類」的維基共享資源網站連結。siteID——返回globalSiteID的根部分,例如「enwiki」中的「en」、「enwikisource」中的「en」、「en-gb」中的「en」等。projID——與siteID功能相同。location——從當前位置向上沿上級行政區劃鏈掃描,逐級返回,直至到達國家層級。examine——返回指定屬性的格式化轉儲資訊。url2——接收一個有效的URL參數,並將其格式化為適合資訊框使用的形式;該函式也接受自身輸出作為輸入。getWebsite——取得官方網站 (P856)並將其格式化為適合資訊框使用的形式。checkvalue——在指定屬性中尋找給定的實體ID作為其值,若找到則返回該實體ID;否則返回nil。checkValidity——返回第一個匿名參數是否為有效的實體ID。showNoLinks——顯示不應添加連結的條目標題。
函式用法範例
[編輯]{{#invoke:WikidataIB |getValue |<属性ID> |name=<字段名> |suppressfields=<永不显示的字段列表> |fetchwikidata=<从维基数据获取值的字段列表> |onlysourced=<yes/no> |noicon=<yes/no> |df=<dmy/mdy/y> |bc=<BC/BCE> |qual=<ALL/DATES/P999> |list=<ubl/hlist/prose> |linked=<yes/no> |<本地参数>}}
{{#invoke:WikidataIB |getCoords |name=<字段名> |suppressfields=<永不显示的字段列表> |fetchwikidata=<从维基数据获取值的字段列表> |<本地参数>}}
{{#invoke:WikidataIB |getQualifierValue |<属性ID> |pval=<属性目标值的ID> |qual=<目标值的限定符ID> |name=<字段名> |suppressfields=<永不显示的字段列表> |fetchwikidata=<从维基数据获取值的字段列表> |onlysourced=<yes/no>}}
{{#invoke:WikidataIB |getValueByQual |<属性ID> |qualID=<要匹配的限定符属性ID> |qvalue=<限定符属性目标值的QID> |name=<字段名> |suppressfields=<永不显示的字段列表> |fetchwikidata=<从维基数据获取值的字段列表> |onlysourced=<yes/no>}}
{{#invoke:WikidataIB |getValueByLang |<属性ID> |lang=<要匹配的语言代码> |name=<字段名> |suppressfields=<永不显示的字段列表> |fetchwikidata=<从维基数据获取值的字段列表> |onlysourced=<yes/no>}}
getValue函式
[編輯]getValue參數說明
[編輯]| 參數名 | 別名 | 功能說明 | 預設值 |
|---|---|---|---|
| (第一個匿名參數) | 1 | 待取得值的屬性ID。必填。 | |
| (第二個匿名參數) | 2 | 本地提供的值,若非空則優先返回該值,而不使用維基數據中的值。 | 空 |
| qid | 要查詢其屬性的維基數據專案編號(QID)。若未提供或為空,則預設為當前頁面對應的維基數據條目——使用mw.wikibase.getEntityIdForCurrentPage()。 | 當前頁面的實體ID | |
| eid | qid的替代參數。除eid外,getValue的所有參數將nil和空字串視為相同,因此設定|x=與省略該參數效果一致。但為與其他模組保持相容,使用|eid=時始終返回空字串,而省略eid則允許qid正常工作。
|
當前頁面的實體ID | |
| rank | (不區分大小寫)設為best時,優先返回首選級(preferred)的值,若無則返回普通級(normal)的值;設為preferred時僅返回首選值;設為normal時僅返回普通值;設為deprecated時僅返回棄用級(deprecated)的值。任何以「b」開頭的參數值視為「best」,以「p」開頭視為「preferred」,以「n」開頭視為「normal」,以「d」開頭視為「deprecated」。可同時指定多個等級,如「p n d」將返回所有等級。「Best」會覆蓋其他標識。無效值將被忽略;若未指定任何等級,則返回首選級和普通級的值。
|
preferred和normal | |
| qual | 以標點符號分隔的限定符屬性ID列表,這些限定符將附在屬性值後的括號中返回。設為qual=ALL時返回全部限定符。設為qual=DATES時返回始於 (P580)和終於 (P582),並附帶日期分隔符。
|
無 | |
| qualsonly | qo | 布林值,啟用後僅顯示限定符而不顯示屬性值和括號。no、false和0均為假,其他值均為真。
|
false |
| fetchwikidata | fwd | 需要從維基數據取得值的欄位列表。ALL表示取得所有欄位。NONE、空白或省略該參數列示不取得任何欄位。
|
無 |
| suppressfields | spf | 永不顯示的欄位列表,即使該欄位有本地值也會強制不顯示。 | 無 |
| name | 欄位名稱。在編寫資訊框時,這是fetchwikidata和suppressfields所辨識的名稱。若指定了fetchwikidata或suppressfields(fetchwikidata=ALL時除外),則此參數為必填。
|
nil | |
| onlysourced | osd | 布林值,用於過濾掉無來源或僅參照維基百科的維基數據值。no、false和0均為假,其他值均為真。
|
true |
| df | 日期格式,可選dmy(日月年)、mdy(月日年)或y(僅年份)。
|
dmy | |
| qdf | 限定符的日期格式。若省略,則預設使用df參數的值;若df亦省略,則預設為「y」。
|
df的值或「y」 | |
| bc | 公元前(BC/BCE)字尾的顯示格式。 | BCE | |
| plaindate | pd | 用於修改日期格式化的字串。設為「true」/「yes」/「1」將停用資料出處狀態 (P1480)的添加及所有連結。設為「adj」效果相同,但使用日期的形容詞形式。 | false |
| linked | 布林值,啟用後通過維基數據上的網站連結連結至本地頁面。no、false和0均為假,其他值均為真。
|
true | |
| displaytext | dt | 若非空,則覆蓋連結項的顯示文字。 | 空 |
| shortname | sn | 布林值,啟用後對連結項使用簡稱 (P1813)替代標籤。no、false和0均為假,其他值均為真。
|
false |
| uselabel | uselbl | 布林值,強制顯示標籤而非消歧義後的網站連結。注意標籤比網站連結更容易遭到破壞。no、false和0均為假,其他值均為真。
|
false |
| wdlinks | wdl | 布林值,當本地無對應條目時,啟用指向維基數據的連結顯示。no、false和0均為假,其他值均為真。
|
false |
| unitabbr | uabbr | 布林值,啟用常用單位的縮寫形式。no、false和0均為假,其他值均為真。
|
false |
| convert | conv | 布林值,啟用後將數量傳遞給Template:Cvt進行處理。no、false和0均為假,其他值均為真。
|
false |
| showunits | su | 布林值,啟用後顯示數量的單位。no、false和0均為假,其他值均為真。
|
true |
| scale | 設定數量格式的比例縮放。可選值:「a」=自動;「0」=不縮放;「3」=千;「6」=百萬;「9」=十億;「12」=萬億。 | 0 | |
| maxvals | 設定當存在多個值時返回的最大數量。設為1可在返回值用於其他呼叫(如圖像)時非常有用。0和空值表示返回全部。
|
0(全部) | |
| collapse | 設定內容自動摺疊的閾值數量。0和空值表示全部內容展開顯示。
|
0(全部) | |
| linkprefix | lp | 連結字首,在連結值時前置添加。僅適用於擁有條目的項及字串(如URL)。使用後會觸發字串的連結。雙引號「"」將被去除,以便傳遞帶空格的參數。 | 空 |
| linkpostfix | 連結字尾,在連結值時後置附加。僅適用於擁有條目的項及字串(如URL)。使用後會觸發字串的連結。雙引號「"」將被去除,以便傳遞帶空格的參數。 | 空 | |
| prefix | 字首,在字串(如URL)的顯示值前添加。雙引號「"」將被去除,以便傳遞帶空格的參數。 | 空 | |
| postfix | 字尾,在字串(如URL)的顯示值後附加。雙引號「"」將被去除,以便傳遞帶空格的參數。 | 空 | |
| qlinkprefix | qlp | 限定符的連結字首(參見linkprefix)。 | 空 |
| qlinkpostfix | 限定符的連結字尾(參見linkpostfix)。 | 空 | |
| qprefix | 限定符的字首(參見prefix)。 | 空 | |
| qpostfix | 限定符的字尾(參見postfix)。 | 空 | |
| sorted | 布林值,啟用後對返回值進行排序。no、false和0均為假,其他值均為真。
|
false | |
| qsorted | 布林值,啟用後對每個返回項中的限定符值進行排序。no、false和0均為假,其他值均為真。
|
false | |
| noicon | 布林值,啟用後將隱藏末尾的「在維基數據上編輯」筆形圖示。適用於返回值需要進一步處理的情形。no、false和0均為假(即顯示圖示),其他值均為真(即隱藏圖示)。
|
false | |
| list | 用於處理多個值列表的模板名稱。例如「cslist」「hlist」「ubl」「blist」「olist」「p-1」。特殊值prose將生成「1、2、3和4」格式。
|
無 | |
| sep | 自訂多個返回值之間的分隔符。雙引號「"」將被去除,以便傳遞帶空格的參數。若未傳遞或傳遞空字串,則使用預設列表分隔符(英文環境下為「, 」)。 | 「, 」 | |
| qsep | 自訂多個限定符返回值之間的分隔符。雙引號「"」將被去除,以便傳遞帶空格的參數。若未傳遞或傳遞空字串,則使用預設列表分隔符(英文環境下為「, 」)。 | 「, 」 | |
| format | 決定全球坐標的顯示格式為度/分/秒還是十進制度數。任何以「dec」開頭的值(不區分大小寫)將渲染為十進制度數,其他值則渲染為度分秒(DMS)格式。 | dms | |
| show | 決定全球坐標的返回方式。設為「longlat」將返回经度, 纬度。其他以「lon」開頭的值(不區分大小寫)僅返回經度。以「lat」開頭的值(不區分大小寫)僅返回緯度。與|noicon=true配合使用時,以上所有情況均返回純數字的十進制度數(帶符號:北緯和東經為正),適用於地圖模板等場景。其他任何值(或不填)則按常規顯示為DMS或十進制度數,並附帶「NSEW」等方位標識。
|
空 | |
| lang | 允許以指定語言返回無連結的值。接受MediaWiki辨識的標準ISO語言代碼。若未提供或為空,則預設使用本地語言(多語言維基則為使用者設定的語言)。 | 本地語言 | |
| parameterset | ps | 便捷參數,允許通過單個參數指定常用的參陣列合:ps=1取得儘可能簡單的連結值;ps=2表示純文字值。參見參陣列合。 | |
| linkredir | 布林值,當維基數據上該值沒有網站連結時,是否開啟檢查是否存在與標籤同名的重新導向頁面。no、false和0均為假,其他值均為真。
|
false |
基本參數
[編輯]- getValue可接受命名參數
|qid=,用於指定條目的維基數據ID。通常省略該參數,預設使用當前條目。 - 待取得值的屬性通過第一個匿名參數傳入,該參數為必填。
- 若提供了第二個匿名參數,則直接返回該值,不再呼叫維基數據。
白名單與黑名單
[編輯]- 呼叫該函式所在欄位的名稱通過命名參數
|name=傳入。系統首先會對照永不顯示欄位的黑名單進行檢查(即該呼叫在所有情況下都必須返回空值)。若欄位不在黑名單中,則繼續對照白名單檢查。若欄位名稱匹配,則當第二個匿名參數提供了本地值時返回該值,否則返回維基數據中的值。 - 指定
|fetchwikidata=ALL是返回所有不在黑名單中的欄位的捷徑。 - 使用黑名單或白名單時,name參數為必填;若未提供(除非
|fetchwikidata=ALL),模組將返回空值。 - 黑名單通過命名參數
|suppressfields=傳入。 - 白名單通過命名參數
|fetchwikidata=傳入。
來源要求
[編輯]getValue函式接受布林參數onlysourced,用於過濾掉無來源或僅引自維基媒體專案的維基數據值。省略該參數、傳遞空參數(|onlysourced=)或傳遞空字串("")均預設為true(即僅返回有來源的值)。值no、false和0視為false(即返回所有值);其他任何值均視為true(為便於閱讀,建議使用|onlysourced=yes/no)。
指向維基數據的連結
[編輯]getValue函式接受布林參數noicon,用於在返回值需要由資訊框進一步處理時(如URL),隱藏末尾的「在維基數據上編輯」圖示和連結。省略該參數或傳遞空參數(|noicon=)預設為false(即顯示圖示)。空字串("")以及值no、false和0視為false;其他任何值均視為true(為便於閱讀,建議使用|noicon=true)。
筆形圖示對非自動確認使用者隱藏。這意味著大多數讀者看不到該圖示,這是在兼顧頁面美觀與防止維基數據破壞,以及鼓勵編輯維基數據之間的平衡。
日期
[編輯]為滿足mdy、dmy或僅年份等日期格式要求,getValue接受命名參數|df=,可取值「dmy」、「mdy」或「y」——預設值為「dmy」。
由於不同條目可能需要BC或BCE字尾,getValue接受命名參數|bc=,可取值「BC」或「BCE」——預設值為「BCE」。
等級
[編輯]|rank=參數設為preferred時僅返回首選值;設為normal時僅返回普通值;設為deprecated時僅返回已棄用值。若設為best,則優先返回首選值(若存在),否則返回普通值。參數值以「p」開頭表示preferred,以「n」開頭表示normal,以「d」開頭表示deprecated,以「b」開頭表示best。允許組合使用,例如|rank=p n返回所有首選值和普通值(此為預設行為),但「best」會覆蓋其他參數。
特定資料類型處理器
[編輯]模組對以下資料類型設有專用處理器:
- 對應某維基百科條目的項,稱為「wikibase-item」。此類值將儘可能連結至中文維基百科上對應的(消歧義後的)條目。
- 表示日期的項,可為世紀、年份、年月或年月日。
- 表示維基共享資源媒體、URL、外部ID或其他純文字的項。
- 表示數量的項,可帶有單位或無單位,也可表示範圍。
- 表示全球坐標的項,以經緯度表示,並帶有相應精度。
其他資料類型的專案前尚未支援。
第三類資料類型可使用以下參數:
|prefix=、|postfix=、|linkprefix=、|linkpostfix=
若未提供|linkprefix=或|linkpostfix=中的至少一項,則僅使用|prefix=和|postfix=。例如,取得維也納天文台(Q532127)中的小行星中心觀測代碼 (P717):
{{#invoke:WikidataIB|getValue|P717|fetchwikidata=ALL|onlysourced=no |prefix="before " |postfix=" after" |qid=Q532127}}→ before 045 after
若參數值含有前導或尾隨空格,請用雙引號將其括起(否則空格會被去除)。若提供了|linkprefix=或|linkpostfix=,則四個參數均被使用,每個值按如下格式生成連結:
[[ linkprefix WikidataValue1 linkpostfix | prefix WikidataValue1 postfix]], [[ linkprefix WikidataValue2 linkpostfix | prefix WikidataValue2 postfix]], 等。
這樣可生成指向列表文章不同章節的多個連結,例如天文台編號列表。例如,取得維也納天文台(Q532127)中的小行星中心觀測代碼 (P717)時,可生成如下連結:
{{#invoke:WikidataIB|getValue|P717|fetchwikidata=ALL|onlysourced=no |prefix= |postfix= |linkprefix="天文台編號列表#" |linkpostfix= |qid=Q532127}}→ [天文台編號列表#045 045]
|prefix=、|postfix=、|linkprefix=、|linkpostfix=參數同樣適用於wikibase-item(若其被連結)。
多個返回值的格式化
[編輯]|sorted=<yes|no>為布林值,用於啟用返回值排序。不傳參、傳空字串、「false」、「no」或「0」均停用排序。該排序僅為簡單的字母順序排序,連結值按「[[ ...」排序。|sep=<分隔符>允許自訂多個返回值之間的分隔符。預設值為"、"(頓號)。若分隔符含有前導或尾隨空格,請用雙引號括起(例如|sep=" - ")。分隔符中的雙引號會被去除。管道符(|)須跳脫為{{!}}。出於無障礙考慮(參見MOS:PLIST),請勿使用|sep=<br>實現無專案符號垂直列表,應使用|list=ubl。|list=<prose|cslist|hlist|ubl|blist|olist>可將多個返回值顯示為:用「和」連接最後兩項的句子(|list=prose)、水平逗號分隔列表(|list=cslist,不適用於正文)、水平列表(|list=hlist)、垂直無專案符號列表(|list=ubl)、垂直專案符號列表(|list=blist)或垂直有序列表(|list=olist)。這些格式會覆蓋分隔符設定,且不顯示指向「在維基數據上編輯」的筆形圖示。|list=p-1顯示最後一個值。與|maxvals=n配合使用可顯示第n個值。
限制返回值數量
[編輯]某些屬性預期只有一個值,如圖像 (P18),但維基數據上可能存在多個值。設定|maxvals=1可將返回值數量限制為1,返回第一個可用值。其他數值同樣有效,但0視為「無限制」。關於如何返回最後一個可用值,請參見上文相應說明。
取消連結
[編輯]表示本地維基條目的返回值預設會被連結(包括重新導向頁面,但不包括消歧義頁面)。若需取消連結,可設定|linked=no。
單位縮寫
[編輯]當返回值為數量時,會附加其單位的名稱。資訊框可能希望使用常用單位的縮寫形式,可通過設定|unitabbr=true實現。
限定符
[編輯]可提供|qual=參數,若存在限定符則返回指定屬性的限定符。若該值設為以標點分隔的屬性ID列表(如P123, P456),則僅返回這些屬性的限定符值。若設為|qual=ALL,則返回所有限定符值。若設為|qual=DATES,則返回始於 (P580)和終於 (P582)並附帶日期分隔符。無論哪種情況,限定符值均跟在屬性值之後,並置於括號內。若返回多個限定符值,預設以逗號分隔,但可通過|qsep=自訂分隔符(可用雙引號括起,雙引號會被去除,以便包含空格)。設定|qsorted=yes可對限定符值進行字母數字排序。
參數簡寫
[編輯]部分較長參數可使用縮寫,使資訊框設計更緊湊:
fwd → fetchwikidataosd → onlysourcedspf → suppressfieldswdl → wdlinks
參陣列合
[編輯]通常情況下,getValue的參數預設值體現了編輯者的共識。例如,|onlysourced=預設為true,因此僅返回來源優於「維基百科」的維基數據值;|fetchwikidata=預設為none,因此須通過設定某些欄位名稱或「ALL」來啟用後才會返回值。這種安全預設設計使得資訊框可具備維基數據功能,而無需改動任何條目,直到為特定條目啟用。
為簡化getValue在其他場景下的使用,可通過|parameterset=或其別名|ps=指定常用參陣列合。目前已實現兩種組合:
- ps=1:一組常用覆蓋參數,用於取得儘可能連結的簡單值:
|rank ="best" |fetchwikidata ="ALL" |onlysourced ="no" |noicon ="true"
- ps=2:以純文字形式取得原始值:
|rank = "best" |fetchwikidata = "ALL" |onlysourced = "no" |noicon = "true" |linked = "no" |plaindate = "true"
- ps=3:參陣列合1,但啟用
|onlysourced=yes:
|rank = "best" |fetchwikidata = "ALL" |onlysourced = "yes" |noicon = "true" |linked = "no" |plaindate = "true"
如有需求,可建立其他組合。
封裝模板
[編輯]模板{{wdib}}可作為{{#invoke:WikidataIB |getValue}}的便捷封裝使用。
其他主要函式
[編輯]getPreferredValue函式
[編輯]getPreferredValue函式與getValue用法完全相同,接受相同的參數,但僅返回等級設為「首選」的屬性值。該函式現已棄用,請改用getValue|rank=best。
getCoords函式
[編輯]- getCoords可接受命名參數
|qid=,用於指定條目的維基數據ID。通常省略該參數,預設使用當前條目。 - 若提供了第一個匿名參數,則直接返回該值,不再呼叫維基數據。
- 從維基數據取得的坐標經解析後傳遞給Template:Coord,其顯示效果與手動呼叫該模板一致。
- 永不顯示欄位的黑名單和白名單機制與getValue相同,通過
|suppressfields=和|fetchwikidata=實現。 format偏好設定顯示格式為十進制度數或度分秒。以「dec」開頭的任何值均表示十進制度數,其他值則表示為度分秒。display偏好設定顯示位置,可選「inline」、「title」或「inline, title」。預設不設定(即使用{{Coord}}的預設值,當前為「inline」)。
getQualifierValue函式
[編輯]getQualifierValue函式用於取得限定符的值。使用時需指定屬性、該屬性對應的值以及相關的限定符。參數說明如下:
- 屬性ID通過匿名參數(或
|1=)傳入。 - 該屬性的目標值通過
|pval=傳入。 - 目標值的限定符ID通過
|qual=傳入。 - 白名單和黑名單的實現參數與getValue相同。
- 可選布林參數
|onlysourced=,用於指定是否僅返回有來源的屬性值(預設為「no」)。 - 可選條目ID
|qid=,用於訪問任意條目。 - 輸出格式化的參數與getValue相同。
getQualifierValue範例
[編輯]在南極望遠鏡(Q1513315)中,屬性重大事件 (P793)的值為建築施工(Q385378),該值帶有兩個限定符始於 (P580)和終於 (P582)。要取得開始日期:
{{#invoke:WikidataIB |getQualifierValue |qid=Q1513315 |P793 |pval=Q385378 |qual=P580 |name=xyz |fetchwikidata=ALL }}
在南極望遠鏡中返回:
getValueByQual函式
[編輯]getValueByQual函式返回某個屬性的值,該屬性包含一個限定符,其值為給定的實體ID。參數說明如下:
- 屬性ID通過匿名參數(或
|1=)傳入。 - 限定符的屬性ID(或「ALL」或「DATES」)通過
|qualID=傳入。 - 該限定符的目標值的維基數據實體ID通過
|qvalue=傳入。 - 白名單和黑名單的實現參數與getValue相同。
- 可選布林參數
|onlysourced=,用於指定是否僅返回有來源的屬性值(預設為「no」)。 - 可選條目ID
|qid=,用於訪問任意條目。 - 輸出格式化的參數與getValue相同。
getValueByQual範例
[編輯]在肉類食物(Q10990)中,屬性讀音 (音訊檔) (P443)有多個值,每個值均帶有限定符作品或名稱的語言 (P407)。我們可以返回限定符值為阿拉伯語(Q13955)所對應的屬性值:
{{#invoke:WikidataIB |getValueByQual |qid=Q10990 |P443 |qualID=P407 |qvalue=Q13955 |fwd=ALL |osd=no |noicon=true}}→ Ar-لحم.ogg
getValueByLang函式
[編輯]getValueByLang函式返回某個屬性的值,該屬性包含限定符作品或名稱的語言 (P407),且該限定符的值為給定的語言代碼。參數說明如下:
- 屬性ID通過匿名參數(或
|1=)傳入。 - 維基媒體語言代碼 (P424)用於匹配語言,其代碼由
|lang=xx[-yy]指定。若未提供代碼,則使用預設語言。 - 白名單和黑名單的實現參數與getValue相同。
- 可選布林參數
|onlysourced=,用於指定是否僅返回有來源的屬性值(預設為「no」)。 - 可選條目ID
|qid=,用於訪問任意條目。 - 輸出格式化的參數與getValue相同。
getValueByLang範例
[編輯]在開源開發網路(Q7565108)中,屬性官方網站 (P856)有多個值,每個值均帶有限定符作品或名稱的語言 (P407)。我們可以返回其作品或名稱的語言 (P407)限定符值(維基數據項)本身具有維基媒體語言代碼 (P424)屬性且值為「ja」(即日語(Q5287))所對應的屬性值:
{{#invoke:WikidataIB |getValueByLang |qid=Q7565108 |P856 |lang=ja |fwd=ALL |osd=no |noicon=true}}→ https://ja.osdn.net/
若不指定|lang=,使用預設語言(此處為英語(Q1860),其維基媒體語言代碼 (P424)值為「en」)也可獲得相同結果:
{{#invoke:WikidataIB |getValueByLang |qid=Q7565108 |P856 |fwd=ALL |osd=no |noicon=true}}→
工具函式
[編輯]getLink函式
[編輯]getLink接受一個維基數據實體的QID,作為第一個匿名參數或通過|qid=傳入。
若當前維基站點存在指向某條目的網站連結,則返回該條目的連結,顯示文字為維基數據標籤。 若無網站連結,則以純文字形式返回標籤。 若當前語言無對應標籤,則顯示QID替代。
{{#invoke:WikidataIB |getLink |Q29016906}}→ Corisca and the Satyr{{#invoke:WikidataIB |getLink |Q3621491}}→ 考古學家
getLabel函式
[編輯]getLabel接受一個維基數據實體的QID,作為第一個匿名參數或通過|qid=傳入。
返回指定QID的維基數據項在當前語言下的標籤。 若當前語言無對應標籤,則返回QID替代。 請注意,返回的是維基數據條目中與當前維基語言相同的標籤(若存在)。
{{#invoke:WikidataIB |getLabel |Q29016906}}→ Corisca and the Satyr{{#invoke:WikidataIB |getLabel |Q3621491}}→ 考古學家{{#invoke:WikidataIB |getLabel |Q19805408}}→ Module:Biblio/Ouvrage
label函式
[編輯]label接受一個維基數據實體的QID,作為第一個匿名參數或通過|qid=傳入。
返回指定QID的維基數據項在當前語言下的標籤,或連結至當前頁面。 若當前語言無對應標籤,則返回空字串。 請注意,返回的是維基數據條目中與當前維基語言相同的標籤(若存在)。
{{#invoke:WikidataIB |label |Q29016906}}→ Corisca and the Satyr{{#invoke:WikidataIB |label |Q3621491}}→ 考古學家{{#invoke:WikidataIB |label |Q19805408}}→ Module:Biblio/Ouvrage
getAT函式
[編輯]getAT接受一個維基數據實體的QID,作為第一個匿名參數或通過|qid=傳入。
若當前維基站點存在指向某條目的網站連結,則以純文字形式返回該網站連結(即條目標題)。 若無網站連結,則不返回任何內容。 請注意,返回的是當前維基百科中對應的條目標題(若維基數據條目中存在跨語言連結)。
{{#invoke:WikidataIB |getAT |Q29016906}}→{{#invoke:WikidataIB |getAT |Q3621491}}→
getDescription函式
[編輯]getDescription接受一個維基數據實體的QID,通過|qid=傳入(若省略則預設為當前條目關聯的QID)。
同時接受一個本地參數,作為第一個匿名參數傳入。
若傳入的本地參數(除「Wikidata」或「none」外)非空,則直接返回該參數值。 若本地參數為「Wikidata」,則以純文字形式返回該維基數據實體的條目描述。 若描述不存在,或本地參數為「none」,則不返回任何內容。
{{#invoke:WikidataIB |getDescription |qid=Q29016906 |wikidata}}→ painting by Artemisia Gentileschi{{#invoke:WikidataIB |getDescription |qid=Q29016906 |A painting}}→ A painting{{#invoke:WikidataIB |getDescription |qid=Q29016906 |none}}→{{#invoke:WikidataIB |getDescription |qid=Q3621491 |wikidata}}→ 研究過去人類活動的人{{#invoke:WikidataIB |getDescription |qid=Q3621491 |A profession}}→ A profession{{#invoke:WikidataIB |getDescription |qid=Q3621491 |none}}→
formatDate函式
[編輯]formatDate接受一個來自mw.wikibase.entity:formatPropertyValues的標準格式日期時間(例如「1 August 30 BCE」)作為參數1,並根據df(日期格式)和bc參數進行格式化。
{{#invoke:WikidataIB |formatDate | 1 August 30 BCE |bc=BCE |df=dmy}}→ 1 August 30 公元前{{#invoke:WikidataIB |formatDate | 1 August 30 BCE |bc=BC |df=mdy}}→ August 1, 30 公元前- df可選「dmy」/「mdy」/「y」——預設值為「dmy」
- bc可選「BC」/「BCE」——預設值為「BCE」
checkBlacklist函式
[編輯]checkBlacklist用於檢查指定欄位是否被允許。 若欄位不在黑名單中(即允許使用),則返回true。 若欄位在黑名單中(即禁止使用),則返回false。
範例:
{{#if:{{#invoke:WikidataIB |checkBlacklist |name=nationality |suppressfields=residence; nationality; citizenship}} | 不在黑名单 | 在黑名单}}→ 不在黑名單{{#if:{{#invoke:WikidataIB |checkBlacklist |name=birth_place |suppressfields=residence; nationality; citizenship}} | 不在黑名单 | 在黑名单}}→ 不在黑名單
emptyor函式
[編輯]若第一個匿名參數僅為標點符號、空白字元或HTML標籤,則返回空值;否則原樣返回該參數(包括前導/尾隨空格)。
若參數可能包含「=」,則必須顯式呼叫:
| 1 = 参数内容
此時前導和尾隨空格將被去除。
該函式在資訊框中可用於替換如下形式的測試:
{{#if: {{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}} | <span class="xxx">{{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}}</span> | }}
改用僅需單次呼叫維基數據的形式:
{{#invoke |WikidataIB |emptyor |1= <span class="xxx">{{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}}</span> }}
labelorid函式
[編輯]labelorid是一個公開函式,用於暴露labelOrId()的輸出結果。
Q編號(實體ID)通過|qid=或作為匿名參數傳入。
返回該實體的維基數據標籤;若無標籤則返回QID。
getQid函式
[編輯]- getQid針對當前頁面及其關聯的維基數據條目進行操作。
- 若提供了第一個匿名參數或
|qid=,則返回該QID; - 否則,若存在「分類的主主題」(P301)的維基數據實體ID,則返回該ID;
- 否則,若當前頁面關聯了維基數據實體ID,則返回該ID;
- 否則不返回任何內容。
examine函式
[編輯]examine提供指定屬性的完整轉儲資訊。屬性ID通過第一個匿名參數(或通過別名|pid=)傳入,條目由參數「qid」指定;若未提供qid,則使用當前頁面對應的條目。兩個參數均可匿名傳入,順序不限。
其工作方式與Dump函式類似,但僅載入單個聲明,而非整個維基數據條目。
- 範例:
{{#invoke:WikidataIB |examine |qid=Q1396889 |P50}}
url2函式
[編輯]url2接受參數url=,該參數為一個有效的URL,並將其格式化為適合資訊框使用的形式。
範例:
{{#invoke:WikidataIB |url2 |url= http://www.example.com/ }}→ www.example .com/ <span class="url">[http://www.example.com/ www<wbr/>.example<wbr/>.com/]</span>
{{#invoke:WikidataIB |url2 |url= http://www.example.com/path/ }}→ www.example .com/path/ <span class="url">[http://www.example.com/path/ www<wbr/>.example<wbr/>.com/path/]</span>
{{#invoke:WikidataIB |url2 |url= {{wdib |P856 |qid=Q23317 |fwd=ALL |osd=no}} }}→ www.audi .com、https://www .audi .co .za/、https://www .audi .de/、https://www .audi .fr/ 
<span class="url">[https://www.audi.com、https://www.audi.co.za/、https://www.audi.de/、https://www.audi.fr/ www<wbr/>.audi<wbr/>.com、https://www<wbr/>.audi<wbr/>.co<wbr/>.za/、https://www<wbr/>.audi<wbr/>.de/、https://www<wbr/>.audi<wbr/>.fr/]</span> [[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=编辑维基数据|link=https://www.wikidata.org/wiki/Q23317?uselang=zh-tw#P856|编辑维基数据]]
{{wdib |P856 |qid=Q23317 |fwd=ALL |osd=no}}→ https://www.audi.com、https://www.audi.co.za/、https://www.audi.de/、https://www.audi.fr/
https://www.audi.com、https://www.audi.co.za/、https://www.audi.de/、https://www.audi.fr/ [[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=编辑维基数据|link=https://www.wikidata.org/wiki/Q23317?uselang=zh-tw#P856|编辑维基数据]]
{{#invoke:WikidataIB |url2 |url= {{url|http://www.example.com/}} }}→ www.example .com www .example .com/ www .example .com]] <span class="url">[http://www.example.com/ www<wbr/>.example<wbr/>.com]</span> www<wbr/>.example<wbr/>.com/ www<wbr/><wbr/>.example<wbr/><wbr/>.com]</span>]</span>
與{{URL}}輸出對比:
{{URL | http://www.example.com/ }}→ www.example .com <span class="url">[http://www.example.com/ www<wbr/>.example<wbr/>.com]</span>
{{URL | http://www.example.com/path/ }}→ www.example .com /path / <span class="url">[http://www.example.com/path/ www<wbr/>.example<wbr/>.com<wbr/>/path<wbr/>/]</span>
{{URL | {{wikidata|property|Q23317|P856}} }}→ www.audi .com <span class="url">[https://www.audi.com www<wbr/>.audi<wbr/>.com]</span>
{{wikidata|property|Q23317|P856}}→ https://www.audi.comhttps://www.audi.com
參見
[編輯]- {{#invoke:URL|url}}與{{#invoke:URL|url2}}
編入資訊框
[編輯]通常,getValue呼叫會在資訊框定義中通過適當的模板參數來呼叫。en:Template:Infobox book/Wikidata/Sandbox中給出了一個簡單的實現範例。以資訊框中的「作者」欄位為例,其編碼方式如下:
| label2 = Author{{#if:{{{authors|}}}|s}}
| data2 = {{#invoke:WikidataIB |getValue |P50 |name=author |fetchwikidata={{{fetchwikidata|}}} |suppressfields={{{suppressfields|}}} |{{{authors|{{{author|}}}}}} }}
待取得的屬性為第一個匿名參數,此處為作者 (P50)。
欄位名稱通過|name=傳入,系統會將該名稱與黑名單和白名單進行比對。若要在特定條目中始終隱藏作者欄位,編者可在資訊框中設定|suppressfields=author,此後該欄位將永不顯示。
若欄位不在黑名單中,則可通過在資訊框中設定|author=喬治·歐威爾等本地值來顯示作者資訊。同時也可接受|authors=參數。若欄位名稱在白名單中(例如|fetchwikidata=author; genre; pub_date; pages; dewey; congress),且未提供本地值,則資訊框將顯示從維基數據取得的值。分隔符可使用除|和{}之外的任意字元。
捷徑|fetchwikidata=ALL將取得所有不在黑名單中的欄位,前提是條目的對應欄位未提供本地值。
資訊框中的呼叫範例
[編輯]getValue的基本用法:
{{#invoke:WikidataIB |getValue |P000 |name=fieldname |qid={{{qid|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{localparameter|}}} }}
完整參數集合:
{{#invoke:WikidataIB |getValue |P000 |name=fieldname |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |wdl={{{wikidatalink|}}} |df={{dateformat|}} |bc={{{bc|}}} |prefix= |postfix= |linkprefix= |linkpostfix= |sorted={{{sorted|}}} |sep={{{separator|}}} |list={{listtype|}}} |{{{localparameter|}}} }}
當然,資訊框中特定欄位的參數可以採用固定值,而不必從資訊框接收參數(後者會影響所有欄位)。例如,某個欄位可能需要設定|list=hlist以顯示一系列短詞;而另一個欄位則可能需要使用|list=ubl來顯示每行若干詞的垂直無專案符號列表。
坐標
[編輯]getCoords呼叫在接收到從維基數據返回的坐標後,將顯示Template:Coord的輸出結果。其編碼方式如下:
|label20 = 坐标
| data20 = {{#invoke:WikidataIB |getCoords |name=coordinates |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{coordinates|}}} }}
範例參見en:Template:Infobox biosphere reserve:
{{Infobox biosphere reserve
| fetchwikidata = ALL
}}
在維基數據包含坐標的條目中使用時,坐標將顯示在常規位置。
升級現有資訊框
[編輯]由於維基數據功能需要|fetchwikidata=參數,因此可將現有資訊框替換為整合了這些呼叫的新資訊框,而無需對任何條目做任何改動。使用新資訊框的每個條目可隨後通過設定|fetchwikidata=ALL或該條目所需的欄位列表來啟用功能。在啟用功能時,編者有責任檢查是否顯示了不想要的欄位。若有,可通過設定|suppressfields=為不需要的欄位列表,將其添加到條目的黑名單中。
可供查證
[編輯]當某個特定欄位必須僅包含有來源的值時,應使用getValue並確保|onlysourced=未設為「false」、「0」或「no」。預設情況下,該函式會排除無來源或僅引自維基百科的值,從而降低條目層面的檢查難度。若接受無來源資料,可設定|onlysourced=no。由於無法通過自動化機制判斷現有來源在特定上下文中是否可靠,此項工作仍需由熟悉主題的編輯在條目層面完成,且應在首次為該條目啟用維基數據時進行。
輔助模板
[編輯]- Template:If then show
- 測試第一個匿名參數是否非空,若非空則返回該參數;否則返回第二個匿名參數。可選的第三和第四個匿名參數為返回第一個參數時提供字首和字尾。適用於第一個參數為維基數據呼叫的情況。
- Template:Ifnoteq then show
- 測試第一個匿名參數是否等於第二個匿名參數,若相等則返回第三個匿名參數;否則返回第一個匿名參數。適用於第一個參數為Lua模組的
{{#invoke:呼叫,且其返回值需要特定例外處理的情況。 - Template:If then wikilink
- 測試第一個匿名參數是否非空,若非空則返回帶有可選命名空間字首的內部連結格式。
- Template:Formatter link
- 接受外部識別碼代碼作為
|code=,並使用格式化URL作為|url=構建指向外部資源的連結,顯示文字為代碼本身。 - Template:Emptyor
- 測試一段文字是否實際為空或包含有效內容。若匿名參數僅包含HTML標籤、標點符號(如維基標記)和空白字元,則返回空值;否則原樣返回該參數。為p.emptyor函式的封裝。
使用範例:Infobox book
[編輯]本節內容取自英文維基百科的en:Template:Infobox book/Wikidata/Sandbox/doc。
不使用維基數據
[編輯]{{Infobox book/Wikidata/Sandbox
| suppressfields =
| fetchwikidata =
| name = Animal Farm
| title_orig = Animal Farm: A Fairy Story
| image = Animal Farm - 1st edition.jpg
| image_size = 200px
| caption = First edition cover
| author = [[George Orwell]]
| country = United Kingdom
| language = English
| genre = Political satire
}}
此用法與普通訊息框無異:僅顯示本地提供的參數。
{{Infobox book/Wikidata/Sandbox
| name = Animal Farm
| title_orig = Animal Farm: A Fairy Story
| image = Animal Farm - 1st edition.jpg
| image_size = 200px
| caption = First edition cover
| author = [[George Orwell]]
| country = United Kingdom
| language = English
| genre = Political satire
}}
若不使用黑名單和白名單,可省略相關參數。
全部使用維基數據
[編輯]{{Infobox book/Wikidata/Sandbox
| fetchwikidata = author; genre; pub_date; pages; dewey; congress
}}
從維基數據取得作者、出版日期、頁數、杜威分類號和國會圖書館目錄號。
{{Infobox book/Wikidata/Sandbox
| fetchwikidata = ALL
}}
捷徑:將|fetchwikidata=設為ALL可取得所有可用欄位。
任何欄位均可通過|suppressfields=指定來隱藏,或通過提供本地值來覆蓋。
永不顯示體裁欄位
[編輯]{{Infobox book/Wikidata/Sandbox
| suppressfields = genre
| fetchwikidata = author; genre; pub_date; pages; dewey; congress
}}
體裁欄位將始終被隱藏,即使提供了本地值也不例外。
{{Infobox book/Wikidata/Sandbox
| suppressfields = genre
| fetchwikidata = author; genre; pub_date; pages; dewey; congress
| genre = Political satire
}}
本地值覆蓋
[編輯]{{Infobox book/Wikidata/Sandbox
| fetchwikidata = author; genre; pub_date; pages; dewey; congress
| genre = Political satire
}}
體裁欄位將顯示「Political satire」,無論維基數據中儲存的是什麼。
{{Infobox book/Wikidata/Sandbox
| fetchwikidata = ALL
| genre = Novel
}}
體裁欄位將顯示「Novel」,無論維基數據中儲存的是什麼。
不取得體裁欄位
[編輯]{{Infobox book/Wikidata/Sandbox
| suppressfields =
| fetchwikidata = author; pub_date; pages; dewey; congress
}}
體裁欄位不會從維基數據取得。僅匯入作者、出版日期、頁數、杜威分類號和國會圖書館目錄號。本地提供的體裁值將正常顯示。
參見
[編輯]- Module:Wikidata,更底層的處理維基數據
- Template:WikidataOI,使用Module:Wd的模板,可選提供
|fetch=和|ifeq=選項,類似此模組的|fetchwikidata=與|fwd=
追蹤分類
[編輯]- Category:缺少維基數據資訊的條目(500)