MediaWiki模板设置:未使用变量时隐藏对应行及空表格
解决MediaWiki模板条件显示行与表格的方法
针对你需要实现的“空变量不显示对应行、全空则隐藏整个表格”的需求,直接利用MediaWiki的内置{{#if}}解析器函数就能完成,修改后的模板代码如下:
{| style="width:250px; font-size: 95%; border:1px solid #eaecf0; background-color:#f8f9fa; box-shadow: 0 1px 2px 1px rgba(0,0,0,0.02); color:black; margin-left:1em; padding:10px; float:right; clear:right; text-align: left;" !style="text-align: center; background-color:#ffb555; padding:5px;" colspan="2" | <span style="font-size: 1.2rem;"><strong>{{{name}}}</strong></span> |- !colspan="2" | [[File:{{{image}}}|250px]] |- ! style="vertical-align: top; padding:3px 10px"| Age | style="vertical-align: top; text-align: right; padding:3px 10px"| {{{age}}} |- ! style="vertical-align: top; padding:3px 10px"| Zodiac | style="vertical-align: top; text-align: right; padding:3px 10px"| [[File:{{{zodiac}}}.svg|22px]] {{{zodiac}}} |- ! style="vertical-align: top; padding:3px 10px"| Birthday | style="vertical-align: top; text-align: right; padding:3px 10px"| {{{birthday}}} |- ! style="vertical-align: top; padding:3px 10px"| Game Debut | style="vertical-align: top; text-align: right; padding:5px 10px"| {{{appearance}}} |- ! style="vertical-align: top; padding:3px 10px"| Created by | style="vertical-align: top; text-align: right; padding:3px 10px"| {{{created}}} |- |} {{#if: {{{status|}}}{{{relatives|}}}{{{relationships|}}} | {| style="width:254px; font-size: 95%; border:1px solid #eaecf0; background-color:#f8f9fa; box-shadow: 0 1px 2px 1px rgba(0,0,0,0.02); color:black; margin-left:1em; padding:10px; float:right; clear:right; text-align: left;" class="mw-collapsible mw-collapsed" !style="text-align: center; background-color:#4c88ef; color:#ffffff;" colspan="2" | <span style="font-size: 1.00em;">Information</span> {{#if: {{{status|}}} | |- ! style="vertical-align: top; padding:3px 10px" | Status | style="vertical-align: top; text-align: right; padding:3px 10px"| {{{status}}} }} {{#if: {{{relatives|}}} | |- ! style="vertical-align: top; padding:3px 10px" | Relatives | style="vertical-align: top; text-align: right; padding:3px 10px"| {{{relatives}}} }} {{#if: {{{relationships|}}} | |- ! style="vertical-align: top; padding:3px 10px" | Relationships | style="vertical-align: top; text-align: right; padding:3px 10px"| {{{relationships}}} }} |- |} }}
关键修改说明
- 单条件行控制:对
status、relatives、relationships每一行都用{{#if: {{{变量名|}}} | 行内容 }}包裹。{{{变量名|}}}表示如果变量未传入值,就返回空字符串;当变量有值时,#if会渲染对应的表格行,空值则直接跳过。 - 整个表格的显示控制:把整个Information表格用
{{#if: {{{status|}}}{{{relatives|}}}{{{relationships|}}} | 表格内容 }}包裹。这里将三个变量的默认空值拼接在一起,只要其中任意一个变量有值,拼接结果就不为空,表格就会显示;如果三个变量都为空,拼接结果是空字符串,整个表格就不会被渲染。
另外修正了原代码里的小问题:比如<strong>标签未闭合、padding:3px; 10px的语法错误。
内容的提问来源于stack exchange,提问作者Ricardo Capistran
相关产品推荐
相关产品推荐

