1

对于 mediawiki 1.16,如何编写将直接修改 wiki 文本的扩展?免费的虚拟主机只有旧版本的 php,所以我无法安装新版本的 mediawiki。

preSaveTransform 可以将签名 (~~~~) 更改为其他一些维基文本。

到目前为止,当我编写解析器扩展时,我只知道将“{{#example: hello | hi}}”显示为“param1 is hello and param2”,但不能直接将 wikitext 更改为此。

我看到 $wikiPage->doEditContent( $new_content, $edit_summary, $flags ); 似乎可以做到这一点,但不幸的是它在版本 1.20 +

更新:在https://git.wikimedia.org/blob/mediawiki%2Fextensions%2FReplaceText/62ec35b6c0d16419e9893c3a78b4d04076024ea2/ReplaceTextJob.php中找到“$article->doEdit($new_text, $edit_summary, $flags);”

更新:编写解析器(或标签)扩展时查找文章标题的方法: $article = new Article($parser->getTitle(), 0 ); https://www.mediawiki.org/wiki/手册:$wgTitle

4

1 回答 1

0

查看 MediaWiki 中的 {{subst:}} 魔术词。

http://www.mediawiki.org/wiki/Manual:替换

它不是评估和显示 wikitext,而是将评估的 wikitext 直接替换到文章中。

我不知道这是否会解决您的问题:您似乎希望自己的解析器函数进行替换,而不是依赖外部的东西,如 subst。但至少,您可以查看 wiki 源代码中 subst 的实现,以了解它是如何工作的。

于 2013-08-04T15:48:41.587 回答