Jump to content

API:展开模板(Expandtemplates)

本頁使用了標題或全文手工轉換
本頁使用了標題或全文手工轉換
From mediawiki.org
This page is a translated version of the page API:Expandtemplates and the translation is 100% complete.

使用GET請求以展開維基文本中的所有模板。

MediaWiki版本:
1.12

API帮助文档

action=expandtemplates

(main | expandtemplates)

Expands all templates within wikitext.

Specific parameters:
Other general parameters are available.
title

Title of the page.

text

Wikitext to convert.

This parameter is required.
revid

Revision ID, for {{REVISIONID}} and similar variables.

Type: integer
prop

Which pieces of information to get.

Note that if no values are selected, the result will contain the wikitext, but the output will be in a deprecated format.

wikitext
The expanded wikitext.
categories
Any categories present in the input that are not represented in the wikitext output.
properties
Page properties defined by expanded magic words in the wikitext.
volatile
Whether the output is volatile and should not be reused elsewhere within the page.
ttl
The maximum time after which caches of the result should be invalidated.
modules
Any ResourceLoader modules that parser functions have requested be added to the output. Either jsconfigvars or encodedjsconfigvars must be requested jointly with modules.
jsconfigvars
Gives the JavaScript configuration variables specific to the page.
encodedjsconfigvars
Gives the JavaScript configuration variables specific to the page as a JSON string.
parsetree
The XML parse tree of the input.
Values (separate with | or alternative): categories, encodedjsconfigvars, jsconfigvars, modules, parsetree, properties, ttl, volatile, wikitext
includecomments

Whether to include HTML comments in the output.

Type: boolean (details)
showstrategykeys

Whether to include internal merge strategy information in jsconfigvars.

Type: boolean (details)
generatexml
Deprecated.

Generate XML parse tree (replaced by prop=parsetree).

Type: boolean (details)
templatesandboxprefix

Template sandbox prefix, as with Special:TemplateSandbox.

Separate values with | or alternative.
Maximum number of values is 50 (500 for clients that are allowed higher limits).
templatesandboxtitle

Parse the page using templatesandboxtext in place of the contents of the page named here.

templatesandboxtext

Parse the page using this page content in place of the page named by templatesandboxtitle.

templatesandboxcontentmodel

Content model of templatesandboxtext.

One of the following values: GadgetDefinition, Graph.JsonConfig, Json.JsonConfig, JsonSchema, MassMessageListContent, NewsletterContent, Scribunto, SecurePoll, css, flow-board, javascript, json, sanitized-css, text, translate-messagebundle, unknown, vue, wikitext, worklist
templatesandboxcontentformat

Content format of templatesandboxtext.

One of the following values: application/json, application/octet-stream, application/unknown, application/vue+xml, application/x-binary, text/css, text/javascript, text/plain, text/unknown, text/x-wiki, unknown/unknown
Example:
Expand the wikitext {{Project:Sandbox}}.
api.php?action=expandtemplates&text={{Project:Sandbox}} [open in sandbox]

示例

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:展開模板

参阅