在MediaWiki侧栏中启用wiki文本

时间:2014-05-14 04:32:04

标签: mediawiki

在最近的MediaWiki中,似乎无法在补充工具栏中启用wikitext,至少在Vector Skin中是这样。 Wikitext允许更高级的格式化和图像插入。

我找到的唯一解决方案是安装CustomNavBlocks扩展(http://www.mediawiki.org/wiki/Extension:CustomNavBlocks),但在MonoBook皮肤中,这会强制侧边栏内每个框内的图像。

是否有更好的方法可以为所有皮肤全局启用wiki文件?

2 个答案:

答案 0 :(得分:1)

补充工具栏完全是皮肤的责任,因此实际上无法保证在所有皮肤中修改其行为。

但是,大多数皮肤(以及所有内置的)都在渲染侧边栏时调用SkinBuildSidebar挂钩,因此构建扩展以修改侧边栏的一种方法是在那里添加一些解析器,处理一些你为此目的而发明的额外标记。

答案 1 :(得分:0)

$wgHooks["SkinBuildSidebar"][] = "fnSidebarMultiLevel";
function fnSidebarMultiLevel(Skin $skin, &$bar) {

  global $wgOut;

  $title = Title::makeTitle(NS_MEDIAWIKI, "Sidebar-Custom");

  if ( !$title->exists() )
    return true;

  $text = WikiPage::factory($title)->getContent()->mText;

  $firstValue = reset($bar);
  $firstKey = key($bar);

  unset($bar[$firstKey]);

  $bar = array(
    $firstKey => $firstValue, 
    "Custom" => $wgOut->parse($text)
  ) + $bar;

  return true;

}

将wikitext添加到wiki.com/wiki/MediaWiki:Sidebar-Custom。 "自定义"块将是第二个。