2011-04-20 27 views
0

有没有什么办法可以做到这一点。 我旁边维基文本:模板转换后的Mediawiki过程标签

{{template_open_tag}} 
{{template_some_data}} 
{{template_close_tag}} 

而且有模板:

{{template_open_tag}}

<my-tag> 

{{template_some_data}}

bla-bla-bla... 

{{template_close_tag}}

</my-tag> 

但标签 '<大胆>' 已经处理的时候第一个模板transluded和wiki使这个页面,如:

bla-bla-bla... 
</my-tag> 

但我想看看:

**bla-bla-bla...** 

在我的扩展中:


$wgHooks['ParserFirstCallInit'][] = 'myTagInit'; 

function myTagInit(&$parser) { 
    $parser->setHook('my-tag', 'myTagRender'); 
} 

function myTagRender($input, $args, $parser, $frame) { 
    return "**".$input."**"; 
} 

谢谢。

P.S. 不要问我为什么,我需要这个奇怪的标记,并且不希望使用这样的事:

{{template_tag|{{template_some_data}}}} 

而且{{template_open_tag}}这样的:

<my-tag>{{{1}}}</my-tag> 
+0

让我看看我是否正确答案:您是否想要{{template_some_data}}中的文本为粗体? – Kovags 2011-04-21 08:52:00

+0

对我来说,这呈现为 bla-bla-bla ... 2011-04-21 14:21:20

+0

由于在html中不起作用,它只是将代码放在文档中。 – 2011-04-21 14:21:52

回答

0

,而不是使用<bold>使用'''你都{{template_open_tag}}和{{template_close_tag}},它应该呈现为喇嘛喇嘛喇嘛...

而且,你不能做:

{{template_open_tag}} 
{{template_some_data}} 
{{template_close_tag}} 

你要做

{{template_open_tag}}{{template_some_data}}{{template_close_tag}} 
+0

谢谢)但是当我说''时,我记住任何标签。 – Yauhen 2011-04-21 18:35:07

+0

如果您将{{template_open_tag}} {{template_some_data}} {{template_close_tag}}换行不换行,它仍然不起作用? – 2011-04-21 19:48:40

+0

不,它仍然不起作用。我不想把它全部放在一行中,因为如果我在这个模板之间插入多个模板,它是不可读的:{{template_open_tag}} {{template_some_data1 | param1 | param2 | param3}} {{template_some_data2 | param1 | | param2 | param3}} {{template_some_data1 | param1 | param2 | param3}} {{template_some_data3 | param1}} {{template_close_tag}} – Yauhen 2011-04-22 09:10:49

1

设置$wgUseTidytrue以使MediaWiki功能后只有所有的模板已被评估除去未关闭的标签。或者,您可以使用wikimarkup - 正如Adrian所说 - 它不受此限制。

更新: AFAIK XML风格的扩展标签在包含模板之前进行评估,因此将它们从多个模板拼接在一起是不可能的。 (事件<ext>{{{1}}}</ext>在1.16之前不起作用,但您可以使用recursiveTagParse使其工作在1.16。)

+0

'$ wgUseTidy = true;'仅适用于HTML标记。但我需要让mediawiki(而不是浏览器)只处理封闭标签。为了理解这一点,我们将''重命名为''。 – Yauhen 2011-04-21 18:50:27

+0

问题已编辑。 – Yauhen 2011-04-21 19:08:50

2

为了警告你 - 这种结构可能会在未来版本的MediaWiki中完全停止使用,这是因为它的行为不一致以及结构(如标签和部分)带来的困难。

做正确的和面向未来的方式确实是同时包含起点和终点的一个模板,在传递中作为一个参数,例如{达{template_tag | {{template_some_data}}}}

+0

我在搜索答案时暂时这样做了。我发现这是一个更好的方法。也许你是对的,我会留在这个版本。谢谢。 – Yauhen 2011-04-24 08:12:20