API:展开模板(Expandtemplates)
Appearance
| 本页是MediaWiki Action API帮助文档的一部分。 |
使用GET請求以展開維基文本中的所有模板。
| MediaWiki版本: | ≥ 1.12 |
API帮助文档
示例
GET请求
一個請求擴展 Project:Sandbox 模板的範例。
回应
"expandtemplates": {
"wikitext": "\n<table class=\"plainlinks ombox ombox-notice\" role=\"presentation\" style=\"margin:auto;\"><tr><td class=\"mbox-image\">[[File:Sandbox.png|75px|alt=|link=]]</td><td class=\"mbox-text\">Welcome to this [[Wikipedia:About the Sandbox|sandbox page]]. Sandbox pages provide space to experiment with the process of editing Wikipedia pages.<br/>To edit this sandbox, click <span class=\"plainlinks\">'''[//en.wikipedia.org/w/index.php?title=API&action=edit here]'''</span> or the \"Edit\" tab along the top of this page..."
}
示例代码
Python
#!/usr/bin/python3
"""
expand_templates.py
MediaWiki API Demos
Demo of `Expandtemplates` module: Expand the Project:Sandbox template.
MIT License
"""
import requests
S = requests.Session()
URL = "https://en.wikipedia.org/w/api.php"
PARAMS = {
"action": "expandtemplates",
"text": "{{Project:Sandbox}}",
"prop": "wikitext",
"format": "json"
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
print(DATA)
PHP
<?php
/*
expand_templates.php
MediaWiki API Demos
Demo of `Expandtemplates` module: Expand the Project:Sandbox template.
MIT License
*/
$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
"action" => "expandtemplates",
"text" => "{{Project:Sandbox}}",
"prop" => "wikitext",
"format" => "json"
];
$url = $endPoint . "?" . http_build_query( $params );
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec( $ch );
curl_close( $ch );
echo( $output );
JavaScript
/*
expand_templates.js
MediaWiki API Demos
Demo of `Expandtemplates` module: Expand the Project:Sandbox template.
MIT License
*/
var url = "https://en.wikipedia.org/w/api.php";
var params = {
action: "expandtemplates",
text: "{{Project:Sandbox}}",
prop: "wikitext",
format: "json"
};
request.get({ url: url, qs: params }, function(error, res, body) {
if (error) {
return;
}
console.log(body);
});
MediaWiki JS
/*
expand_templates.js
MediaWiki API Demos
Demo of `Expandtemplates` module: Expand the Project:Sandbox template.
MIT License
*/
var params = {
action: "expandtemplates",
text: "{{Project:Sandbox}}",
prop: "wikitext",
format: "json"
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
console.log( data );
} );
可能的错误
| 代码 | 信息 |
|---|---|
| invalidtitle | 错误标题“title”。 |
| nosuchrevid | 没有ID为revid的修订版本。 |
| revwrongpage | rrevid不是title的修订版本。 |
参数历史
- v1.26 - 啟用
encodedjsconfigvars,jsconfigvars,modules。 - v1.25 - 啟用
revid,properties。 - v1.24 - 啟用
prop。 - v1.18 - 啟用
includecomments。 - v1.13 - 啟用
generatexml。
附加提醒
- Special:ExpandTemplates - 這是一個特殊的頁面,有兩個輸入框,一個用於輸入維基文本、另一個用於輸入頁面名稱。 它會在
Result視窗中產生展開的維基文本,即模板、解析器函數、和變數會遞歸展開;依賴於頁面名稱的變數會根據提供的頁面名稱展開。 這是在儲存或按下Preview後頁面渲染之前的中繼結果(或將產生的維基文本提交給其他處理),有助於理解和調試維基文本的擴展。 有關此頁面的更多信息,請點擊此處: Help:展開模板