将 MediaWiki 模板参数传递给自定义 HTML 属性
Passing down MediaWiki template arguments to custom HTML attributes
考虑添加一个名为 simplified_example
的新标签和一些 JavaScript 的自定义 MediaWiki 扩展(为简单起见,只需使用提供的参数调用 alert
):
<?php
if ( ! defined( 'MEDIAWIKI' ) ) die();
$wgExtensionFunctions[] = 'registerTags';
$wgExtensionCredits['parserhook'][] = array(
'name' => 'myTags',
);
function registerTags() {
global $wgParser;
$wgParser->setHook('simplified_example', function ($input, $argv, $parser, $frame) {
$output = $parser->recursiveTagParse($input, $frame);
$title = $argv["value"];
return "<div onclick=\"alert('$title')\">$output</div>";
});
}
?>
使用它我可以将以下代码放入 MediaWiki 页面源代码中:
<simplified_example value="Testing">...</simplified_example>
这导致 ...
div 可点击 - 显示一个包含所提供文本的消息框。现在我想把这个标签放在模板中,像这样:
<simplified_example value="{{{1}}}">...</simplified_example>
当我将此模板放入 MediaWiki 页面时:
{{TestTemplate|Testing...}}
我再次获得可点击的 ...
但显示的消息未被评估并且显示 {{{1}}}
而不是提供 Testing...
.
如何通过模板将 MediaWiki 页面源中的参数传递到我的自定义标签?
尝试在模板中使用 #tag
函数而不是 html,如下所示:
{{#tag:simplified_example|value={{{1}}} }}
考虑添加一个名为 simplified_example
的新标签和一些 JavaScript 的自定义 MediaWiki 扩展(为简单起见,只需使用提供的参数调用 alert
):
<?php
if ( ! defined( 'MEDIAWIKI' ) ) die();
$wgExtensionFunctions[] = 'registerTags';
$wgExtensionCredits['parserhook'][] = array(
'name' => 'myTags',
);
function registerTags() {
global $wgParser;
$wgParser->setHook('simplified_example', function ($input, $argv, $parser, $frame) {
$output = $parser->recursiveTagParse($input, $frame);
$title = $argv["value"];
return "<div onclick=\"alert('$title')\">$output</div>";
});
}
?>
使用它我可以将以下代码放入 MediaWiki 页面源代码中:
<simplified_example value="Testing">...</simplified_example>
这导致 ...
div 可点击 - 显示一个包含所提供文本的消息框。现在我想把这个标签放在模板中,像这样:
<simplified_example value="{{{1}}}">...</simplified_example>
当我将此模板放入 MediaWiki 页面时:
{{TestTemplate|Testing...}}
我再次获得可点击的 ...
但显示的消息未被评估并且显示 {{{1}}}
而不是提供 Testing...
.
如何通过模板将 MediaWiki 页面源中的参数传递到我的自定义标签?
尝试在模板中使用 #tag
函数而不是 html,如下所示:
{{#tag:simplified_example|value={{{1}}} }}