WikiDer > Справка: Условные таблицы - Википедия
![]() | Эта справочная страница является практическое руководство. В нем подробно описаны процессы или процедуры некоторых аспектов норм и практики Википедии. Это не один из Политика или рекомендации Википедии, и может отражать разные уровни консенсус и проверка. |
ПарсерФункции позволяют условное отображение строк, столбцов или ячеек таблицы (и вообще всего остального). Но у функций Parser есть некоторые ограничения.
Основное использование
![]() | Убедитесь, что ПарсерФункции плагин включен перед продолжением. |
В следующем примере показано базовое использование #если
который доступен из расширения ПарсерФункции:
{{#если:{{{variable_foo |}}} | foo имеет значение '''{{{variable_foo}}}''' | foo - это ''пустой''}}
Здесь, {{{variable_foo}}}
проверяется, определено ли оно с непустым значением. В таблице ниже показан результат вызова шаблона (мы будем называть шаблон {{Условные таблицы / пример 1}}
) с разными значениями для {{{variable_foo}}}
:
Вызов шаблона | Результат |
---|---|
{{Условные таблицы / пример 1}} | foo это пустой |
{{Условные таблицы / пример 1| variable_foo =}} | foo это пустой |
{{Условные таблицы / пример 1| переменная_фу = значение}} | foo установлен на ценить |
Позиционные параметры {{{1}}}
и т.д. работают как именованные параметры:
{{#если:{{{1|}}} | 1-й параметр '''{{{1}}}''' | 1-й параметр ''пустой''}}
Вызов шаблона | Результат |
---|---|
{{Условные таблицы / пример 1б|| бар}} | 1-й параметр пустой |
{{Условные таблицы / пример 1б| foo | bar}} | 1-й параметр фу |
{{Условные таблицы / пример 1б| [[m: | не пусто]]}} | 1-й параметр не пустой |
{{Условные таблицы / пример 1б| bad = idea}} | 1-й параметр пустой |
{{Условные таблицы / пример 1б| 1 = нормально = да}} | 1-й параметр ок = да |
Обратите внимание, как символ трубы (вертикальная полоса) в ссылке работает как есть, в таблицах Wiki это не так просто, см. ниже.
Полное скрытие строк
Также можно скрыть строки данных в таблице, однако есть проблемы, о которых вам следует знать.
Неправильное использование
к несчастью #если
и синтаксис таблиц MediaWiki не работают вместе. Например, следующее, {{Условные таблицы / пример 2}} является инвалид и работать не будет:
{| class = "infobox" {{# if: {{{variable_foo |}}} || -! Фу | {{{variable_foo}}}}} | -! Бар | {{{variable_bar}}} |}
В таблице ниже показан эффект, когда {{Условные таблицы / пример 2}} используется:
Вызов шаблона | Результат | |||
---|---|---|---|---|
{{Условные таблицы / пример 2}} |
| |||
{{Условные таблицы / пример 2| variable_foo =}} |
| |||
{{Условные таблицы / пример 2| variable_foo = | variable_bar = bar}} |
| |||
{{Условные таблицы / пример 2| переменная_фу = значение}} |
| |||
{{Условные таблицы / пример 2| variable_foo = значение | variable_bar = bar}} |
|
Проблема заключается в использовании символа вертикальной черты (|
). Этот символ в вызовах шаблонов используется для разделения параметров и поэтому недопустим.
Правильное использование
План А
Один из методов скрытия строк в таблицах (или других структур в таблицах) напрямую использует HTML.[1] HTML более сложен, чем синтаксис таблиц MediaWiki, но не намного. В общем, есть лишь несколько HTML-тегов, о которых вам нужно знать.
<tr>
- этот тег создает новую строку (аналогично|-
в синтаксисе таблицы MediaWiki)<th>
- этот тег создает новую ячейку заголовка в строке (аналогично!
в синтаксисе таблицы MediaWiki)<td>
- этот тег создает новую ячейку в строке (аналогично|
в синтаксисе таблицы MediaWiki)<caption>
- этот тег создает заголовок (аналогично|+
в синтаксисе таблицы MediaWiki)
Работая с приведенным выше примером недопустимого шаблона, переключившись на HTML, мы получим следующий код:
{| class = "infobox" {{# if: {{{variable_foo |}}} |<tr><th>Фу</th><тд>{{{variable_foo}}}</тд></tr>}} | -! Бар | {{{variable_bar}}} |}
Код выше находится в {{Условные таблицы / пример 2а}}. Как и прежде, в таблице ниже показан эффект при его использовании:
Вызов шаблона | Результат | ||||
---|---|---|---|---|---|
{{Условные таблицы / пример 2а}} |
| ||||
{{Условные таблицы / пример 2а| variable_foo =}} |
| ||||
{{Условные таблицы / пример 2а| variable_foo = | variable_bar = bar}} |
| ||||
{{Условные таблицы / пример 2а| переменная_фу = значение}} |
| ||||
{{Условные таблицы / пример 2а| variable_foo = значение | variable_bar = bar}} |
|
План B
Как отмечалось выше, единственная проблема - это вертикальная полоса илисимвол трубы в шаблоне. Часто бывает достаточно заменить проблемные символы числовыми ссылками, например "{" к {, "|" к |, и "}" пользователем }.Но для таблиц Wiki настоящий "|" требуется разделитель - использование | не работает как разделитель.
Простая уловка позволяет защитить "|" в значениях параметров шаблона, все еще поступая как реальные "|" разделитель в таблице Wiki, см. Волшебное слово {{!}}. Обратите внимание, что"!" (восклицательный знак) не имеет проблем с шаблонами, это другой разделитель, используемый в таблицах Wiki. Вот код для плана B:
{| class = "infobox" {{# if: {{{foo |}}} | {{!}} -! Фу {{!}} {{{Foo}}}}} | -! Бар | {{{bar}}} |}
Приведенный выше код находится в {{Условные таблицы / пример 2б}}. Как и прежде, в таблице ниже показан эффект при его использовании:
Вызов шаблона | Результат | ||||
---|---|---|---|---|---|
{{Условные таблицы / пример 2б| bar = nobar}} |
| ||||
{{Условные таблицы / пример 2б| foo = | bar = vbar}} |
| ||||
{{Условные таблицы / пример 2б| foo = значение}} |
| ||||
{{Условные таблицы / пример 2б| foo = значение | bar = vbar}} |
|
План C
Возможно, самый простой вариант - использовать условное выражение со свойством CSS "display: none" следующим образом:
{| class = "infobox" | - {{#if: {{{variable_foo |}}} | | style = "display: none;" }}! Фу | {{{variable_foo}}} | -! Бар | {{{variable_bar}}} |}
Таким образом, нет необходимости, чтобы вертикальный символ wikitables появлялся в условном выражении #if. Однако источники и примечания, упомянутые в отключенных ячейках, не будут подавлены другим содержимым, в результате чего они по-прежнему будут перечислены в конце статьи без каких-либо ссылок на них в тексте статьи. Кроме того, этот метод работает только с браузерами, поддерживающими CSS.
Приведенный выше код находится в {{Условные таблицы / пример 2c}}. Как и прежде, в таблице ниже показан эффект при его использовании:
Вызов шаблона | Результат | ||||
---|---|---|---|---|---|
{{Условные таблицы / пример 2c| variable_bar = bar}} |
| ||||
{{Условные таблицы / пример 2c| variable_foo = | variable_bar = bar}} |
| ||||
{{Условные таблицы / пример 2c| variable_foo = foo}} |
| ||||
{{Условные таблицы / пример 2c| variable_foo = foo | variable_bar = bar}} |
|
Получать помощь
Если вы не можете заставить шаблон вести себя так, как вам нравится, вы можете попробовать спросить Деревенский насос, разместив запрос на Запрошенные шаблоны, или связавшись с редактором через IRC.
Смотрите также
Чтобы избежать пустых строк в случае следующих друг за другом необязательных строк, см. m: Справка: Таблица № Строка условной таблицы.
Для получения дополнительной информации о #если
(и другие # функции), см .:
Следующие разделы справки относятся к шаблонам:
В этом разделе справки рассматривается дизайн таблиц (поскольку в большинстве шаблонов используются таблицы, это может быть полезно):
И наконец:
- Шаблон: Инфобокс - «общий» шаблон информационного окна, демонстрирующий эти методы.
- Справка: условные выражения
Примечания и ссылки
- ^ Использование кода таблицы HTML в шаблонах может сделать их непереносимыми для других MediaWiki вики. Это связано с тем, что Википедия и другие вики-сайты Фонда Викимедиа обрабатывают вики-текст через HTML Tidy; большинство других вики не имеют такой же настройки, и теги таблиц HTML не отображаются. Видеть Википедия: WikiProject Transwiki # Специальные шаблоны.