如何为mediawiki 1.16编写直接修改wiki文本的扩展?免费的can主机只有一个旧版本的php,所以我不能安装一个更新的版本的mediawiki。
preSaveTransform可以将签名()更改为其他wikitext。
在编写解析器扩展时,到目前为止,我只知道将“{#示例: hello }”设置为,将显示为"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中找到“$update>doEdit( $new_text,$edit_summary,$flags )”
update:编写解析器(或标记)扩展时查找文章标题的方法:$article =新文章($解析器->getTitle(),0 );https://www.mediawiki.org/wiki/Manual:$wgTitle
发布于 2013-08-04 15:48:41
查看MediaWiki中的{{subst:}魔术单词。
http://www.mediawiki.org/wiki/Manual:Substitution
它不是评估和显示wikitext,而是使被评估的wikitext直接被替换到本文中。
我不知道这是否会解决您的问题:您似乎希望自己的解析器函数进行替换,而不是依赖像subst这样的外部工具。但至少,您可以查看wiki源代码中subst的实现,以了解它是如何实现的。
https://stackoverflow.com/questions/17689637
复制相似问题