【问题标题】:Mediawiki process tag after templates tranclusion模板转入后的 Mediawiki 进程标签
【发布时间】:2011-04-24 01:06:56
【问题描述】:

有没有办法做这样的事情。 我有下一个 wiki 文本:

{{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>

但标签“”在第一个模板转译时已经处理,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."**";
}

谢谢。

附: 不要问我为什么需要这个奇怪的标记并且不想使用这样的东西:

{{template_tag|{{template_some_data}}}}

还有 {{template_open_tag}} 喜欢:

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

【问题讨论】:

  • 让我看看我的理解是否正确:你想用 {{template_some_data}} 粗体显示文本吗?
  • 对我来说这呈现为 bla-bla-bla...
  • 因为在html中不起作用,它只是将代码放在文档中。

标签: tags mediawiki


【解决方案1】:

提醒您——这种结构可能会在未来版本的 MediaWiki 中完全淘汰,因为它的行为不一致以及它对标签和部分等结构造成的困难。

正确且面向未来的方法确实是将您的开始和结束都包含在一个模板中,并将中间作为参数传递,例如 {{template_tag|{{template_some_data}}}}

【讨论】:

  • 我在寻找答案时暂时这样做了。我看到这是一个更好的方法。也许你是对的,我会继续使用这个版本。谢谢。
【解决方案2】:

$wgUseTidy 设置为true 以使MediaWiki 仅在评估完所有模板后才删除未关闭的标签。或者,您可以使用 wikimarkup - 正如 Adrian 所说 - 不受此限制。

更新: AFAIK XML 样式的扩展标记在包含模板的方式发生之前进行评估,因此不可能将它们从多个模板拼凑在一起。 (事件 &lt;ext&gt;{{{1}}}&lt;/ext&gt; 在 1.16 之前不起作用,但您可以使用 recursiveTagParse 使其在 1.16 中起作用。)

【讨论】:

  • '$wgUseTidy = true;'仅适用于 HTML 标签。但我需要让 mediawiki(不是浏览器)只处理封闭标签。为了理解这一点,让我们将“”重命名为“”。
【解决方案3】:

在您的 {{template_open_tag}} 和 {{template_close_tag}} 中使用 ''' 而不是使用 &lt;bold&gt;,它应该呈现为 bla-bla-bla...

另外,你不能这样做:

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

你必须这样做

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

【讨论】:

  • 如果你把 {{template_open_tag}}{{template_some_data}}{{template_close_tag}} 没有换行,它仍然不起作用?
  • 没有。它仍然不起作用。而且我不想把它全部放在一行中,因为如果我在这样的中间放置一个以上的模板,它是不可读的:{{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}}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-17
  • 2010-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-28
  • 1970-01-01
相关资源
最近更新 更多