有没有办法在MediaWiki的ajax钩子中获得一个正确初始化的wiki解析器?

时间:2013-11-21 06:54:12

标签: php mediawiki mediawiki-api mediawiki-extensions

在扩展程序中使用$wgAjaxExportList,是否可以获得正确的wiki解析器?

到目前为止,我已经尝试了以下方面的内容:

    global $wgParser;
    $parserOpts = \ParserOptions::newFromContext(\RequestContext::getMain());
    $wgParser->startExternalParse(null,$parserOpts,OT_HTML);
    $html = $wgParser->internalParse($code);
    $html = $wgParser->replaceLinkHolders($html);
    $html = $wgParser->replaceTransparentTags($html);
    $html = \Sanitizer::normalizeCharReferences($html);
    return $html;

但是,这不能正常工作。

现在我知道有一个用于解析wikicode的javascript api:http://www.mediawiki.org/wiki/API:Parsing_wikitext

但我不想使用它,因为这意味着我将不得不做多个ajax请求。

是否有更好的方法可以在扩展中的ajax请求中解析服务器端的wiki文本?

1 个答案:

答案 0 :(得分:2)

不要自己调用所有这些内部函数,只需使用$wgParser->parse()并传入ParserOptions。

另外(并且无关),您应该编写API模块,$wgAjaxExportList是不推荐使用的界面。