html - MediaWiki 模板表条件列

标签 html css mediawiki mediawiki-templates

我的 MediaWiki 中有一个模板,用于以表格方式显示信息。模板看起来像这样(为了更好地概述而缩短):

{| align="center" border="1" cellpadding="1" cellspacing="1" style="width: 400px"
| colspan="2" style="text-align: center; background-color: {{{Fon1}}}; color: {{{Fon2}}}"|'''Data'''
|-
| colspan="2" style="background-color: {{{Fon1}}}; color: {{{Fon2}}}"|<center>'''Overview'''</center>
|-
{{#if:{{{Soft Skills|}}}|
{{!}} '''Soft Skills'''
{{!}} {{{Soft Skills|}}}
}}
|-
{{#if:{{{Picture|}}}|
{{!}} {{{ Picture|}}}
|-
|}

它们将填充无序列表 ( <ul><li>Skill One</li><li>Skill Two</li> ... </ul> )。有时可能会有很多,所以当他们超过 5 个时,我希望他们分两列。

我查看了条件表,但没有找到任何对我有帮助的东西。我也没有搜索 stackoverflow,但没有找到任何东西。

这能以某种方式实现吗?

最佳答案

将列表拆分成列相当容易。维基百科上有几个模板可以执行此操作,最受欢迎的是 Template:Div col ,它使用 CSS 列(CSS 保存在 MediaWiki:Common.css 中,您需要将其与所有 div col 的子模板一起复制)。您可能还想调查 other column templates看看它们是如何工作的。

困难的部分是检测列表中是否有五个或更多元素。该模板只能看到 {{{Soft Skills|}}} 参数的内容,因此您必须以某种方式解析它才能找到元素的数量。这很棘手,因为您可以同时拥有两个 MediaWiki 样式的无序列表:

* Item 1
* Item 2
* Item 3

以及 HTML 样式的列表:

<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>

此外,HTML 样式的列表可以包含属性和不一致的空格等。

相反,您可以重组模板以接受多个软技能参数,例如 {{{Soft Skill 1}}}{{{Soft Skill 2}}}, {{{Soft Skill 3}}} 等。然后你可以这样做:

{{#if: {{{Soft Skill 5|}}}
 | {{div col||10em}}
   {{unbulleted list
    |{{{Soft Skill 1|}}}
    |{{{Soft Skill 2|}}}
    |{{{Soft Skill 3|}}}
    |{{{Soft Skill 4|}}}
    |{{{Soft Skill 5|}}}
    |{{{Soft Skill 6|}}}
    |<!-- Add as many more parameters here as you think you will need... -->
   }}
   {{div col end}}
 | {{unbulleted list
    |{{{Soft Skill 1|}}}
    |{{{Soft Skill 2|}}}
    |{{{Soft Skill 3|}}}
    |{{{Soft Skill 4|}}}
   }}
}}

但是,为此您需要 Template:Unbulleted list ,当然,这是非常难看的代码。

要改善这一点,您可以使用 Scribunto扩展名,并用Lua编写模板。事实上,像上面这样的构造几乎就是将 Scribunto 引入维基媒体 wiki 的原因。 (并且模板:元素符号列表无论如何都需要 Scribunto。)使用 Scribunto,您只需编写一个 for 循环来遍历所有软技能参数,而不必推出循环并且只能迭代有限次。

如果你真的想坚持使用一个 {{{Soft Skills}}} 参数,那么你也可以尝试使用 Scribunto 来解析它的内容,但这会很困难,因为我上面提到的,并且由于在解析 wiki 文本时你可能会遇到其他极端情况。使用{{{Soft Skill 1}}}{{{Soft Skill 2}}}等参数是比较靠谱的选择。

关于html - MediaWiki 模板表条件列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44706427/

相关文章:

html - 盒子模型和IE

html - 当窗口太小时,文本消失

css - border-image > 内容后面的半透明 png

css - 下拉菜单在 IE9 上损坏

php - 在 Fedora 上安装 MediaWiki 的问题

mysql - MediaWiki - 无法编辑主页

javascript - 如何在HTML中的输入文本框中添加span

javascript - 如何制作 animate.css 动画循环

html - 覆盖 Html.EditorFor 的 "id"属性 - 不起作用

php - 将带有特殊字符的文件上传到 wampserver 上的 mediawiki