php - 有什么方法可以在 MediaWiki 的 ajax Hook 中获取正确初始化的 wiki 解析器吗?

标签 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 文本?

最佳答案

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

此外(无关地),您应该编写一个 API 模块,$wgAjaxExportList 是一个已弃用的接口(interface)。

关于php - 有什么方法可以在 MediaWiki 的 ajax Hook 中获取正确初始化的 wiki 解析器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20114343/

相关文章:

javascript - 通过 MediaWiki API 从文章返回文本?

wikipedia-api - 如何通过 MediaWiki API 从 Wikipedia 文章中获取信息框?

php - 通过 PEAR 安装 phpunit 后如何获得 phpunit.bat?

php - DocumentRoot 始终默认为/var/www/html 且无法更改

php - 从 PHP 向 Node.js(socket.io) 发送请求

html - MediaWiki:Secure_HTML 和 Google Checkout 按钮格式

mediawiki - 卡住(锁定)MediaWiki 表中的顶行(标题)

php - Websocket 和用户识别 (PHP)

mysql - MediaWiki 1.16.0 - 在 phpmyadmin 中选择当前文章

PHP 连接到 MediaWiki API 并检索数据