我想获取MediaWiki页面的HTML,即我想通过解析器运行MediaWiki Markup。现在,我知道我可以使用一些外部解析器,但大多数都不支持Transclusion和(自然)扩展,所以我的输出会有所不同。
由于我可以访问MediaWiki安装,我想知道是否可以使用内置的解析器来呈现页面。由于页面上的所有其他内容(导航,侧边栏,javascript和css包含等),我不想做屏幕抓取,我只是想要身体。
如果重要,它将在PHP 5.2上运行MediaWiki 1.12。
答案 0 :(得分:7)
使用action = render;例如index.php?title = Article_title& action = render
答案 1 :(得分:3)
是的,你可以做到这一点,事实上,我记得在我的许多扩展程序here中都做了这件事。
找到了我的一个扩展程序:SecureTransclusion。
摘录如下:public function mg_strans( &$parser, $page, $errorMessage = null, $timeout = 5 ) {
if (!self::checkExecuteRight( $parser->mTitle ))
return 'SecureTransclusion: '.wfMsg('badaccess');
$title = Title::newFromText( $page );
if (!is_object( $title ))
return 'SecureTransclusion: '.wfMsg('badtitle')." ($page)";
if ( $title->isTrans() )
$content = $this->getRemotePage( $parser, $title, $errorMessage, $timeout );
else
$content = $this->getLocalPage( $title, $errorMessage );
$po = $parser->parse( $content, $parser->mTitle, new ParserOptions() );
$html = $po->getText();
return array( $html, 'noparse' => true, 'isHTML' => true );
}
答案 2 :(得分:2)
如何使用当前的MediaWiki解析器?只需抓住转换后的输出,比如说
从<!-- start content -->
到<div class="printfooter">
或NewPP limit report
。后者开始预处理器的统计。这样就省略了所有侧框和横幅。