【问题标题】:How do you make "infoboxes" in mediawiki?您如何在 mediawiki 中制作“信息框”?
【发布时间】:2015-01-06 14:46:54
【问题描述】:

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

右侧栏包含有关 wiki 帖子解释的内容或任何内容的信息。

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

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

这是我的 wiki,我想知道如何在页面上添加侧边栏。

【问题讨论】:

    标签: mediawiki sidebar


    【解决方案1】:

    要制作简单而优雅和灵活的信息框,首先检查是否安装了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”等。如果您需要更多参数,只需复制(复制-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 页面并复制以下 wikitext,将“Infobox”替换为您为模板指定的名称,并将“param1”、“param2”等替换为您的名称已经给了你的参数:

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

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

    我不得不为无数客户开发这样的信息框,我慢慢地找到了这个解决方案,因为它在复杂性和灵活性方面都是最佳的。希望它可以帮助某人!

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 这对于展示方面来说很好,但对于内容方面来说,还应该仔细考虑在哪里存储实际数据。可能性包括标准 wikitext/模板语法、SemanticMediaWiki、Wikibase。
      【解决方案3】:

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

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

      我想一步一步地为像我这样的傻瓜分享解决方案。

      1. 转到带有您喜欢的信息框的维基页面(在我的例子中是 Formica fusca 页面)。
      2. 选择信息框的全部内容并右键单击信息框顶部的标题。
      3. 选择检查元素(不同浏览器的命名可能不同 - 我使用的是 Opera)
      4. 向右看(打开了一个窗口)。
      5. 将光标移到右侧窗口中的条目上方并查找&lt;table class"[..] 标记。请注意,当您将鼠标悬停在 &lt;table class=" 上时,整个信息框都会突出显示
      6. 右键单击它并转到“复制”,然后选择“复制 externalHTML”。
      7. 在您的 MediaWiki 上创建模板:Examplenamehere 页面,编辑它并将复制的 HTML 代码放在那里。随意编辑。
      8. 正如 Sophivorus 所说,转到 MediaWiki:Common.css 并添加一些样式 - 您可以使用他/她提到的代码。
      9. 造型。在 HTML 代码中,将类添加到您希望通过 CSS 页面设置样式的元素(从第 8 步开始)。你至少需要那些:1)给整个信息框(在这种情况下,它将是&lt;table class="infobox" bla bla bla&gt;)2)标题/标题类信息框-副标题(或其他;&lt;th class="infobox-subtitle" bla bla&gt;)3)给副标题一个类如果你想要任何字幕 (&lt;td class="infobox-subtitle" bla bla&gt;)。
      10. 从这里复制 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;
        }
        

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

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

      在表格顶部放置带有页面名称的标题:{{{nazwa|{{PAGENAME}}}}},而不是标题。

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

      【讨论】:

      • 我刚刚收到这个“1 月 5 日 23:26 回答”。我想它的样式取决于浏览器。
      猜你喜欢
      • 1970-01-01
      • 2018-02-18
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-04
      相关资源
      最近更新 更多