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 # Специальные шаблоны.