修改Mediawiki中的Wikitext,如preSaveTransform

时间:2013-07-17 01:32:00

标签: mediawiki

如何为mediawiki 1.16编写一个直接修改wiki文本的扩展名? 免费的webhost只有旧版本的php,所以我无法安装较新版本的mediawiki。

preSaveTransform可以将签名(~~~~)更改为其他wiki文本。

当我编写解析器扩展时,到目前为止,我只知道将“{{#example:hello | hi}}”改为显示,因为“param1是hello和param2”但是可以' t将wikitext直接更改为。

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

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

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

1 个答案:

答案 0 :(得分:0)

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

http://www.mediawiki.org/wiki/Manual:Substitution

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

我不知道这是否会解决您的问题:您似乎希望自己的解析器函数进行替换,而不是依赖于像subst这样的外部函数。但至少,你可以在wiki源代码中查看subst的实现,以弄清楚它是如何做的。