【问题标题】:Enabling wikitext in MediaWiki sidebar在 MediaWiki 侧边栏中启用 wikitext
【发布时间】:2014-05-14 04:32:03
【问题描述】:

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

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

有没有更好的方法来为所有皮肤全局启用 wikitext?

【问题讨论】:

    标签: mediawiki


    【解决方案1】:

    侧边栏完全由皮肤负责,因此实际上无法保证在所有皮肤中修改其行为。

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

    【讨论】:

      【解决方案2】:
      $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;
      
      }
      

      将维基文本添加到wiki.com/wiki/MediaWiki:Sidebar-Custom。 “自定义”块将是第二个。

      【讨论】:

        猜你喜欢
        • 2011-03-24
        • 2013-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多