如何在MediaWiki皮肤中更改TOC的位置



我正在为我的网站开发MediaWiki皮肤。对于页面内容,我使用<?= $this->html( 'bodycontent' ); ?>来输出所有内容。其中一部分,在较长的页面上,是目录(TOC)。

我想把TOC的位置从正文中移到侧边栏中,但我不知道如何防止TOC显示在bodycontent中,也不知道从哪里获得原始数据以在侧边栏中显示它。

我希望有一个类似于$this->data['sidebar']['navigation']的数据时间,我可以用它来格式化我想要的格式。

如何关闭bodycontent中的TOC?

是否有$this->data位置具有TOC数据?

MediaWiki蒙皮系统并不是专门为此而设计的,但有人创建了一个扩展,使您的工作更轻松:https://www.mediawiki.org/wiki/Extension:DeToc

使用该扩展,您可以执行以下操作(在function execute()中):

$body = $this->data['bodycontent'];
$new_body = DeToc::RemoveToc($body, $extracted_toc);
/* Print body */
echo $new_body;
/* Print TOC somewhere else */
echo $extracted_toc;

或者,您可以使用$parser->mShowToc = false;关闭TOC,然后自己创建TOC。MediaWiki内部使用这样的正则表达式来查找所有部分:'/^={2,5}(.*?)={2,5}$/m'

相关内容

  • 没有找到相关文章

最新更新