2

在扩展中使用$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 文本?

4

1 回答 1

2

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

此外(并且不相关),您应该编写一个 API 模块,$wgAjaxExportList它是一个已弃用的接口。

于 2014-07-28T08:23:21.247 回答