你如何制作"信息框"在mediawiki?

时间:2015-01-06 14:46:55

标签: mediawiki sidebar

我正在使用Mediawiki创建一个wiki。 我在其他wiki上看过每个页面的右侧栏。 像这样:http://minecraft.gamepedia.com/Diamond_Ore 右侧栏有关于那件事的信息 维基文章解释或者说什么。

我想知道是否可以在每个上做到这一点 页面,以及如何?

我做了一个示例页面:http://moreplus.mwzip.com/wiki/ExamplePage 这是我的维基,我想知道如何在页面上添加侧栏。

3 个答案:

答案 0 :(得分:8)

要制作简单而优雅且灵活的信息框,请先检查是否已安装ParserFunctions extension。然后使用以下HTML和wikitext组合创建一个名为“Infobox”(或其他)的模板:

<div class="infobox">
<div class="infobox-title">{{{title|{{PAGENAME}}}}}</div>{{#if:{{{image|}}}|
<div class="infobox-image">[[File:{{{image}}}|300px]]</div>}}
<table>{{#if:{{{param1|}}}|<tr>
    <th>Parameter 1</th>
    <td>{{{param1}}}</td>
</tr>}}{{#if:{{{param2|}}}|<tr>
    <th>Parameter 2</th>
    <td>{{{param2}}}</td>
</tr>}}{{#if:{{{param3|}}}|<tr>
    <th>Parameter 3</th>
    <td>{{{param3}}}</td>
</tr>}}{{#if:{{{param4|}}}|<tr>
    <th>Parameter 4</th>
    <td>{{{param4}}}</td>
</tr>}}{{#if:{{{param5|}}}|<tr>
    <th>Parameter 5</th>
    <td>{{{param5}}}</td>
</tr>}}</table>
</div>

将“param1”,“param2”等替换为您对信息框实际需要的参数,例如“名称”,“出生日期”等。如果您需要更多参数,只需复制(带副本) -paste)现有参数之一并对其进行修改。

然后转到MediaWiki:Common.css并添加一些样式(如果您没有编辑MediaWiki:Common.css的必要权限,则必须将此CSS作为内联样式添加到模板中的HTML ):

.infobox {
    background: #eee;
    border: 1px solid #aaa;
    float: right;
    margin: 0 0 1em 1em;
    padding: 1em;
    width: 400px;
}
.infobox-title {
    font-size: 2em;
    text-align: center;
}
.infobox-image {
    text-align: center;
}
.infobox th {
    text-align: right;
    vertical-align: top;
    width: 120px;
}
.infobox td {
    vertical-align: top;
}

最后,转到需要信息框的wiki页面并复制以下wiki文本,将“Infobox”替换为您给模板的名称,将“param1”,“param2”等替换为您定义的参数早期:

{{Infobox
|title = 
|image = 
|param1 = 
|param2 = 
|param3 = 
|param4 = 
|param5 = 
}}

您可以安全地留空或删除任何不使用的参数,因为它们都是可选的。如果未提供“标题”,则信息框将默认为页面名称,这通常是您想要的。

我必须为无数客户开发类似这样的信息框,我慢慢地在复杂性和灵活性方面达到最佳解决方案。希望它可以帮助别人!

任何高级用户的PS:我建议使用HTML而不是wikitext来定义主表,因为这样我们可以避免与#ifs的管道发生冲突。在维基百科中,通过使用插入管道的名为{{!}}的模板可以避免这种冲突,但这会导致无法读取的wikitext。

答案 1 :(得分:4)

信息框只是右侧浮动和一些额外格式的表格。

{| style="float:right;border:1px solid black"
| My fantastic infobox
|-
| More info
|}

为了最佳做法,您应该在wiki的CSS中的类中包含信息框格式,并定义信息框template,而不是在每个页面上创建单独的表。

答案 2 :(得分:1)

不确定@Sophivorus帖子有多新鲜 - 没有日期所以我假设它是2018年,如果没有 - 抱歉。

我正在寻找一个教程,可以解释令人讨厌的信息框及其创建过程,但没有运气。维基本身没有任何帮助。经过2,5个晚上,我终于放弃了,找到了Sophivorus的帖子。它给了我一个暗示,也许用简单的CSS创建一个HTML的信息框是一个更好的广告更容易的想法..我认为Wiki必须将其s&amp;&amp; ty信息框转换为HTML,我没有错! :)我有一个很好的信息框没有学习wiki的scribunto-lua-srua-wikitext怪物以及HTML和CSS方面的知识。

我想逐步分享像我这样的假人的解决方案。

  1. 使用您喜欢的信息框(在我的案例中为Formica fusca页面)访问wikipage。
  2. 选择信息框的全部内容,然后右键单击信息框顶部的标题。
  3. 选择检查元素(浏览器之间的命名可能不同 - 我使用Opera)
  4. 向右看(打开一扇窗户)。
  5. 将光标移动到右侧窗口中的条目上方,然后查找<table class"[..]标记。请注意,当您在<table class="
  6. 上时,整个信息框都会突出显示
  7. 右键单击它并转到复制,然后选择复制外部HTML。
  8. 在MediaWiki上创建模板:Examplenamehere页面,编辑它并在那里放置复制的HTML代码。根据需要编辑它。
  9. 正如Sophivorus所说,去MediaWiki:Common.css并添加一些样式 - 你可以使用他/她提到的代码。
  10. 样式。在HTML代码中,将类添加到您希望通过CSS页面设置样式的元素(从步骤8开始)。你将需要至少那些:1)给出整个信息框(在这种情况下它将是<table class="infobox" bla bla bla>)2)标题/标题类信息框 - 副标题(或其他; <th class="infobox-subtitle" bla bla>)3)给出子如果您希望任何子标题(<td class="infobox-subtitle" bla bla>)。
  11. ,则为该课程
  12. 从这里复制CSS或者使用上面提到的类自己在CSS中创建代码

    .infobox {
    background-color: #ffff00;
    border: 2px solid #008600;
    float: right;
    margin: 0 0 1em 1em;
    padding: 1em;
    width: 400px;
    }      
    .infobox-title {
    border: 1px solid #000000;
    font-size: 1.5em;
    text-align: center;
    background-color: #ff0000;
    }
    .infobox-subtitle {
    font-size: 1em;
    text-align: center;
    background-color: #fff00;
    }
    .infobox-image {
    text-align: center;
    background-color: #ffff00;
    }
    
  13. 在HTML中 在您希望用户添加信息的地方粘贴{{{somenamehere}}},然后创建..模板,您必须将其放在其他页面上以调用您的Examplenamehere模板:

     {|Examplenamehere
     |{{{somenamehere1}}}
     |{{{somenamehere2}}}
     |etc. etc.
     |}
    

    要在页面顶部放置一个页面名称为{{{nazwa|{{PAGENAME}}}}}的标题,而不是标题。

    如果您想检查或复制我的模板,请转到此处:http://wiki.mrowki.ovh/index.php?title=Szablon:Opis并检查页面