你如何在 mediawiki 中制作 "infoboxes"?

How do you make "infoboxes" in mediawiki?

我正在使用 Mediawiki 制作 wiki。我在其他维基上看到每个页面的右侧栏。 像这样:http://minecraft.gamepedia.com/Diamond_Ore

右侧栏包含有关 wiki post 解释的内容或其他内容的信息。

我想知道是否可以在每个页面上制作它,如何制作?

我制作了一个示例页面:[链接已删除]

那是我的 wiki,我想知道如何向页面添加边栏。

信息框只是带有右侧浮动和一些附加格式的表格。

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

为了获得最佳实践,您应该在维基 CSS 的 class 中包含您的信息框格式,并定义一个信息框 template 而不是在每个页面上创建单独的表格。

要制作简单而优雅且灵活的信息框,请首先检查是否安装了 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”等替换为您实际需要的信息框参数,例如“name”、“birth-date”等。如果您需要更多参数,只需复制(copy-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;
}

最后,转到需要信息框的维基页面并复制以下维基文本,将“信息框”替换为您为模板指定的名称,并将“param1”、“param2”等替换为名称你给了你的参数:

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

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

我不得不为无数客户开发这样的信息框,我慢慢地得出这个解决方案,因为它在复杂性和灵活性方面是最佳的。希望对大家有帮助!

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

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

我正在寻找一个教程来解释令人讨厌的信息框及其创建过程,但没有成功。 Wiki 本身没有帮助。 2,5 晚上我终于放弃了,找到了Sophivorus 的post。它给了我一个提示,也许用简单的 CSS 在 HTML 中创建一个信息框是一个更好的广告更容易的主意。我认为 Wiki 必须将其 s&&&ty 信息框转换为 HTML 而我是错了! :) 我有一个很好的信息框,无需学习 wiki 的 scribunto-lua-srua-wikitext 怪物和 HTML 和 CSS.

中的大量知识

我想以step-by-step的方式为像我这样的傻瓜分享解决方案。

  1. 转到带有您喜欢的信息框的维基页面(在我的例子中是 Formica fusca 页面)。
  2. Select 信息框的全部内容并右键单击信息框顶部的标题。
  3. 选择检查元素(命名可能因浏览器而异 - 我使用 Opera)
  4. 向右看(window打开)。
  5. 将光标移到右侧条目上方 window 并寻找 <table class"[..] 标记。请注意,当您将鼠标悬停在 <table class="
  6. 上时,整个信息框会突出显示
  7. 右键单击它并转到复制,然后select复制外部HTML。
  8. 在您的 MediaWiki 上创建 Template:Examplenamehere 页面,对其进行编辑并将复制的 HTML 代码放在那里。随意编辑。
  9. 正如 Sophivorus 所说,转到 MediaWiki:Common。css 并添加一些样式 - 您可以使用提到的代码 he/she。
  10. 造型。在 HTML 代码中,将 classes 添加到您希望通过 CSS 页面设置样式的元素(来自第 8 步)。你至少需要那些:1)给出整个信息框(在这种情况下它将是<table class="infobox" bla bla bla>)2)titles/headersclassinfobox-subtitle(或其他;<th class="infobox-subtitle" bla bla>) 3) 给 sub-title 一个 class 如果你想要 sub-titles (<td class="infobox-subtitle" bla bla>).
  11. 从此处复制 CSS 或使用上述 classes

    在 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;
    }
    

在HTML: 在您希望用户添加信息的地方粘贴{{{somenamehere}}}然后创建..您必须放置在其他页面上以调用您的Examplenamehere模板的模板:

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

要在 table.

的顶部放置一个 header 页面名称:{{{nazwa|{{PAGENAME}}}}} 而不是标题

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