Шаблон:Навигационная таблица

Материал из Викимультии — энциклопедии мультипликации
Это текущая версия страницы, сохранённая Alexandr Efremov (обсуждение | вклад) в 21:33, 19 апреля 2017. Вы просматриваете постоянную ссылку на эту версию.
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску


Документация

Данный шаблон позволяет быстро создавать навигационные шаблоны, указывая в качестве параметров списки ссылок.

В правом верхнем углу находится кнопка [показать] / [скрыть]. Это реализовано с помощью MediaWiki:Common.js.

Заготовка для копирования

Заготовка ниже предназначена для копирования в новые шаблоны для облегчения их оформления:

{{Навигационная таблица
| имя                     = {{подст:PAGENAME}}{{подст:пустой шаблон|Не меняйте ничего на этой строке. Она изменится сама при сохранении.}}
| заголовок               = 
| изображение             = 
| state                   = <includeonly>{{{state|autocollapse}}}</includeonly>
| стиль                   = <!-- Стиль всех заголовков (вверху, сбоку, внизу), например: background: {{цвет|Россия}}; -->
| класс_списков           = hlist

| вверху        = 

| группа1       = 
| список1       =

| группа2       = 
| список2       =

<!-- ... -->

| группа23      = 
| список23      =

| внизу         = 
}}<noinclude>[[Категория:Навигационные шаблоны]]</noinclude>

Параметры

Для удобства шаблон {{Навигационная таблица}} имеет одинаковые названия параметров с дочерними шаблонами {{Навигационная таблица с колонками}} и {{Навигационная таблица с блоками}}. Параметры, помеченные звёздочкой (*), являются общими для всех трех шаблонов.

Основные

Список параметров и их имен
Параметры Алиасы
name= имя=
title= заголовок=
navbar= ссылка_на_просмотр=
border=
state=
above= вверху=
image= изображение=
imageleft= изображение_слева=
groupn= группаn=
listn= списокn=
below= внизу=
titlestyle= стиль_заголовка=
groupstyle= стиль_групп=
bodystyle= стиль_тела=
basestyle= стиль_базовый=
groupnstyle= стиль_группыn=
listnstyle= стиль_спискаn=
groupwidth= ширина_групп=
liststyle= стиль_списков=
listpadding= отступ_списков=
oddstyle= стиль_нечётных=
evenstyle= стиль_чётных=
abovestyle= стиль_вверху=
belowstyle= стиль_внизу=
imagestyle= стиль_изображения=
imageleftstyle= стиль_изображения_слева=
bodyclass= класс_тела=
aboveclass= класс_вверху=
groupclass= класс_групп=
listclass= класс_списков=
belowclass= класс_внизу=
titlegroup=
titlegroupstyle=
innerstyle=
titleclass= класс_заголовка=
имя* =
name* =
Имя шаблона, необходимое для ссылки Просмотр этого шаблона (переход к шаблону) на всех страницах, где используется шаблон. Для простоты можно использовать {{подст:PAGENAME}}. Если указан параметр |ссылка_на_просмотр=plain, то этот параметр не используется.
state* = [autocollapse, collapsed, uncollapsed, plain, off]
autocollapse — значение по умолчанию, если |state= пустой или отсутствует;
collapsed — при данном значении таблица всегда будет свернута;
uncollapsed — при данном значение таблица всегда будет развернута;
plain — при данном значении таблица всегда будет развернута и будут убраны ссылки [показать] / [скрыть] справа. Заголовок будет отцентрирован относительно всей ячейки, игнорируя размеры «шестеренки»;
off — при данном значении таблица всегда будет развернута и будут убраны ссылки [показать] / [скрыть] справа. Заголовок не будет отцентрирован относительно всей ячейки, игнорируя размеры «шестеренки». Предпочтительно использовать plain вместо off. Используйте данный параметр, только если знаете что делаете.
Навигационная таблица с параметром autocollapse будет появляться в скрытом состоянии, если на странице есть две или более навигационных таблицы с CSS-классом collapsible (технические детали см. в MediaWiki:Common.js).
Иногда требуется навигационный шаблон с состоянием по умолчанию, которое можно переопределить в статье. Для этого в навигационном шаблоне используйте параметр |state=, просто передающий значение базовому шаблону (вместо состояние по умолчанию нужно подставить необходимое значение — например, autocollapse):
| state = <includeonly>{{{state|состояние по умолчанию}}}</includeonly>
(теги <includeonly> нужны для того, чтобы при просмотре шаблона на его странице он всегда оставался в раскрытом состоянии). Соответственно, при использовании такого навигационного шаблона можно указывать его состояние, например:
{{Наш навигационный шаблон|state=collapsed}}
ссылка_на_просмотр* =
navbar* =
Значение по умолчанию — показывать ссылку Просмотр этого шаблона (или Просмотр этого шаблона — цвет подбирается автоматически в зависимости от цвета фона) для перехода к шаблону, указанному в параметре |имя=. Если указано значение plain, либо параметр |имя= пустой или не задан, ссылка в левой части заголовка показана не будет и заголовок будет отцентрирован относительно всей ячейки. Если указано значение off, то центрирование не будет включать в себя размер ссылок [показать] / [скрыть].
border* =
Если значение установлено как child или subgroup, то навигационная таблица может быть использована в качестве дочернего элемента, который плотно прилегает в другой навигационной таблице. Граница будет скрыта и исчезнет внешнее расстояние между таблицами, так что она вписывалась в список (|list=) родительской навигационной таблицы. Если установлено значение none, то граница также будет скрыта и исчезнет внешнее расстояние (padding), а навигационная таблица сможет быть использована в качестве дочернего элемента другого контейнера (не используйте это значение если собираетесь использовать навигационную таблицу внутри навигационной таблицы, используйте только child или subgroup). Если установлено любое другое значение, то обычная навигационная таблица отображается с границей в 1px. Альтернативный способ указать границу чтобы задать стиль подгруппы, это использовать первый неименованный параметр вместо |border=:
{{Навигационный шаблон|child
...
}}

Ячейки

заголовок* =
title*=
Текст, отображаемый в верхней строке таблицы. Обычно это тема шаблона, краткое описание его содержания.
вверху =
above =
Ячейка во всю ширину таблицы, располагающаяся непосредственно под основным заголовком (над заголовками/списками тела шаблона). В шаблоне без параметра |изображение= задание параметра |вверху= аналогично заданию параметра |список1= без |заголовок1=, но при этом список из параметра |вверху= по умолчанию будет отцентрирован.
группаn =
groupn =
(группа1, группа2, ..., группа23) Если этот параметр указан, слева от соответствующего |списокn= будет отображён заданный текст. Если параметр не указан, |списокn= займёт всю ширину таблицы.
Если для |группаn= не будет указан |списокn=, заголовок займёт всю ширину таблицы и будет отцентрирован. (Не используйте данную функцию шаблона, она вскоре будет удалена. Для реализации используйте шаблон {{Навигационная таблица с блоками}}.)
списокn =
listn =
(список1, список2, ..., список23) Тело шаблона; как правило, набор ссылок. Каждый список отображается в отдельной строке таблицы. Каждый |списокn= может быть сопровождён параметром |группаn= (см. выше). Если параметр |класс_списков= (или |класс_тела=) содержит значение hlist, каждый элемент списка должен начинаться с новой строки и использовать астериск (*). Если в строка будет начинаться с двух и более астерисков (**), то элементы начнут оборачиваться в скобки, как дочерние для основного. Пример:
| список1 =
* 1
* 2
** 3
* 4
даст результат: 1 •  2 (3) •  4.
Также можно использовать мини-группы, чтобы их заголовки выделялись жирным. С этой целью следует использовать ; перед заголовком мини-группы и : перед каждым из элементов. Пример:
| список1 =
; Заголовок
: 1
: 2
:: 3
: 4
даст результат:
Заголовок
1
2
3
4
Если не используется класс hlist, элементы списка должны быть указаны на одной строке, но, заключив их в <div>...</div>, можно использовать перенос строки.
изображение =
image =
Изображение, которое будет показано под основным заголовком в правой части таблицы (правее заголовков/списков). Для того, чтобы изображение отображалось, должен быть хоть один |список= либо |группа=. Параметр |изображение= допускает стандартный викикод для отображения, то есть
| изображение = [[Файл:Пример.jpg|100px]]
В шаблоне, не растянутом на всю ширину страницы, изображение будет показано со сдвигом от правого края шаблона. Для того, чтобы этого избежать, используйте параметр right в викикоде, то есть
| изображение = [[Файл:Пример.jpg|80px|right]]
изображение_слева =
imageleft =
Аналогично стандартному изображению, но которое будет показано под основным заголовком в левой части таблицы (левее заголовков/списков). Для того, чтобы изображение отображалось, должен быть хоть один |список= либо |группа=.
внизу =
below =
Ячейка во всю ширину таблицы, располагающаяся внизу тела шаблона (под заголовками/списками и изображением). В шаблоне без параметра |изображение= задание параметра |внизу= аналогично заданию последнего параметра |списокn= без |группаn=, но при этом список из параметра |внизу= по умолчанию будет отцентрирован.

Стили

В следующих параметрах указываются CSS-стили.

Внимание! Значения стилей таблиц по умолчанию в Википедии в настоящее время заданы с помощью MediaWiki:Common.css.

Так как разделение строк происходит через CSS-свойство border-top, то возможны сложности с созданием границ ячеек. Проблему могут помочь решить CSS-тени или шаблоны {{box-shadow}} и {{Box-shadow border}}.

style =
Аналог |bodystyle=, используемый в английском разделе Википедии для совместимости со старыми шаблонами. Рекомендуется заменять его на |bodystyle= или |стиль_тела=. Обратите внимание: параметры |style= и |стиль= имеют разное назначение, |стиль= описан ниже.
titlestyle =
стиль_заголовка =
Стили для параметра |заголовок=. Как правило, цвет фона:
| стиль_заголовка = background: #nnnnnn;
| стиль_заголовка = background: name;
Цвет фона по умолчанию — #cfe3ff.
basestyle =
стиль =
Задает общий стиль для |вверху=, |внизу=, |заголовок= и |группаn=, не затрагивая ячейки списков.
background: #nnnnnn;
bodystyle =
стиль_тела =
Стили для тела (фона) шаблона. Примеры аргументов этих параметров:
background: #nnnnnn;
text-align: [right/center/left/justified]
width: N[em/%/px]
float: [left/right/none]
clear: [right/left/both/none]
groupstyle =
стиль_групп =
Стили для всех параметров |группаn=. Этот параметр имеет более высокий приоритет, нежели |стиль=. Примеры аргументов этого параметра:
background: #nnnnnn;
text-align: [left/center/right];
vertical-align: [top/middle/bottom];
white-space: nowrap;
Цвет фона по умолчанию — #dcebff. Как можно видеть, этот цвет чуть светлее стандартного цвета фона заголовка шаблона. Если вы подбираете цвет фона по тому же принципу, отталкиваясь от другого цвета фона заголовка, вы можете воспользоваться инструментом подбора цвета на базе HSL-шкалы, сдвинув значение третьего параметра (светлоты) на треть ближе к 100 (например, 85 → 90; пример инструмента).
groupnstyle =
стиль_группыn =
Стиль для одного из заголовков групп. Переписывает параметр |groupstyle=. Пример:
| group2style = background: red; color: white;
groupwidth =
ширина_групп =
Параметр используется для упрощения работы с шириной заголовков групп, когда меньшие заголовки имеют меньшую ширину. Особенно полезно при использовании дочерних шаблонов. Пример:
| groupwidth = 10em
liststyle =
стиль_списков =
Стили для всех параметров |списокn=. Этот параметр имеет более высокий приоритет, нежели |стиль=.
Цвета фона списка (и всей таблицы) по умолчанию — #f9f9f9.
listnstyle =
стиль_спискаn =
Стиль для одного из списков. Переписывает параметр |liststyle=. Пример:
| list2style = background: red; color: white;
listpadding =
отступ_списков =
Задает значение внутренних отступов для всех списков, по умолчанию этот параметр равен 0em — сверху и снизу, 0.25em — справа и слева.
| listpadding = 0.5em 0 — задаст отступы 0.5em — сверху и снизу, 0em — справа и слева.
| listpadding = 0 — уберёт все отступы в ячейках списков.
oddstyle =
стиль_нечётных =
evenstyle =
стиль_чётных =
Стили для всех нечётных (|список1=, |список3= и т. д.) и чётных (|список2=, |список4= и т. д.) списков. Эти параметры имеют более высокий приоритет, нежели |стиль= и |стиль_списков=. Обычно используются для задания цвета фона (background: #nnnnnn;), чтобы получить строки таблицы с фоновой чересполосицей. Цвет нечётных списков по умолчанию — #fdfdfd, чётных — #f7f7f7.
evenodd = [swap, even, odd, off]
чётные_нечётные =
Если задано значение swap, то автоматическое чередование чётных и нечётных строк станет обратным. Обычно, если чётным строкам задан светло-серый фон, то при использовании этого параметра нечётные строки получат серый фон вместо чётнчётных строк. Значения even и odd заставит все строки стать чётными или нечётными. off отключает автоматическое чередование строк. Этот дополнительный параметр следует использовать только для устранения проблем, когда навигационная таблица используется как дочерний элемент другой навигационной таблицы и строки не совпадают. Примеры и дальнейшее описание можно найти в разделе, посвященном дочерним шаблонам.
abovestyle =
стиль_вверху =
belowstyle =
стиль_внизу =
Стили для параметров |вверху= и |внизу=, соответственно. Обычно используются для задания цвета фона и выравнивания текста:
background: #nnnnnn;
text-align: [left/center/right];
imagestyle =
стиль_изображения =
imageleftstyle =
стиль_изображения_слева =
Задает стиль ячеек для изображений. Может быть использован, если ширина ячейки, в которой находится изображение, слишком большая.
стиль_изображения = width: 5em;

Классы

bodyclass =
класс_тела =
aboveclass =
класс_вверху =
groupclass =
класс_групп =
listclass =
класс_списков =
belowclass =
класс_внизу =
Задают CSS-класс для элементов шаблона. Обычно используется hlist для горизонтальных списков |класс_списков=. Каждый из параметров может принимать значение hlist, и если в шаблоне вы используете более одного параметра с hlist, то лучше использовать |bodyclass= для всего шаблона. Также можно использовать класс hlist-items-nowrap, чтобы запретить перенос строки внутри элементов, но это создаёт проблемы в IE9 и ниже (ими можно будет пренебречь, когда доля их использования станет очень малой).
Раньше шаблоны использовали разделители вроде {{}}, {{·}} вместо списков с астериском. Чтобы автоматически преобразовать код шаблона из старого формата в новый, вы можете воспользоваться следующим букмарклетом (запускается из панели закладок) (код поддерживает Jack who built the house):
javascript:/* version 2.1 */ var classList = 'hlist'; var textboxContent = $('#wpTextbox1').val().replace(/<br ?\/>/g, '<br>'); var textboxNewContent = textboxContent.replace(/(\|\s*(?:список|list|содержание)\d*\s*=)([^]*?\n\s*)(?=\||\}\})/g, function(s, m1, m2) { var m2r = m2.replace(/\{\{(?:[nN]o(?:wrap|br)|[sS])\|([^•·\}]+?)\s*(?:•|(?:\'\'\')?·(?:\'\'\')?)\s*\}\}\s*/g, '$1\n* '); if (m2 !== m2r && classList.indexOf('hlist-items-nowrap') === -1) { classList += ' hlist-items-nowrap'; } m2r = m2r.replace(/\s*({\{[·•*т!](w(rap)?)?\}\}|·|•||)\s*/g, '\n* '); if (m2 !== m2r) { m2r = m2r.replace(/^(\s*)<div(?:[\w ]+?=[^<>]+| ?)>([^]*?)\n?<\/div>(\s*)$/, '$1$2$3'); m2r = m2r.replace(/^(\s*)\{\{[nN]owrap begin\}\}([^]*?)\n?\{\{[nN]owrap end\}\}(\s*)$/, '$1$2$3'); m2r = '\n* ' + m2r.replace(/^\s*/g, ''); m2r = m2r.replace(/\* \{\{(?:[nN]o(?:wrap|br)|[sS])\|([^\}]+?)\s*\}\}(\s*)$/, '* $1$2'); m2r = m2r.replace(/ *(\s*)$/, '$1'); } return m1 + m2r; }); if (!textboxNewContent.match(/[Нн]авигационная полоса/) && !textboxNewContent.match(/[^"']hlist[^"']/)) { if (textboxNewContent.indexOf('\n\n') !== -1) { textboxNewContent = textboxNewContent.replace(/^([^]*?)(\n\n)/, '$1\n|класс_списков = ' + classList + '$2'); } else { textboxNewContent = textboxNewContent.replace(/^([^]*\| *state *=[^\n]*\n)/, '$1|класс_списков = ' + classList + '\n'); } } $('#wpTextbox1').val(textboxNewContent); var summaryValue = $('#wpSummary').val(); if (!/hlist/.test(summaryValue)) { $('#wpSummary').val(summaryValue + (/[^,; \/]$/.test(summaryValue) ? ', ' : '') + 'перевод на hlist при помощи [[t:navbox#bookmarklet|букмарклета]]'); }
Этот букмарклет не преобразует элементы в скобках в пункты списка второго уровня (**) — это нужно делать вручную.

Примеры

Без изображения

С изображением

</source> }}

С изображением и стилями

Дочерние шаблоны

Больше примеров на тестовой странице шаблона.

Существует возможность разместить несколько навигационных таблиц в одной, при этом внешние рамки будут убраны. Для этого необходимо использовать параметр |border= или просто первый параметр со значением child. Как пример, в следующем коде дополнительная навигационная таблица добавляется в первый список:

{{Навигационная таблица
| имя = {{подст:PAGENAME}}
| заголовок = Заголовок

| заголовок1 = [опционально]
| список1 = {{Навигационная таблица|child
   ...параметры дочерней навигационной таблицы...
}}

...
}}

Пример с подгруппами

Данный пример показывает как могут создаваться подгруппы. Рекомендуется использовать {{Подгруппы навигационной таблицы}}, но похожего результата можно добиться и с помощью {{Навигационная таблица}} с использованием праметра |border= или первого параметра со значением child. В данном примере использованы оба способа создания подгрупп. Параметр |evenodd= позволяет сменить чередование цвета строк, для создания правильной последовательности, а для того чтобы в подгруппах совсем убрать чередование и использовать цвет основного списка, необходимо добавить строку liststyle = background: transparent; в каждую подгруппу.

Пример со сворачивающимися блоками

Приведенный ниже пример создан с помощью обычной Навигационной таблицы в качестве основного контейнера, а то его каждый список |list1=, |list2= и |list3= содержит еще одну Навигационную таблицу с первым параметром child. Шестеренка у каждой внутренней таблицы убрана с помощью заданного параметра navbar|navbar=plain. Но в данном примере, так как у внутренних Навигационных таблиц не задан параметр |имя= шестеренка не будет отображаться даже если параметра |navbar= не будет.

Взаимодействие с другими шаблонами

Данный шаблон разработан специально для работы в сочетании с двумя другими родственными шаблонами: {{Навигационная таблица с колонками}} и {{Навигационная таблица с блоками}}. Все три эти шаблона имеют одинаковые параметры для простоты использования (такие параметры отмеченны звездочкой (*) в списке описания параметров). Самое главное, что каждый шаблон может быть использован в качестве дочернего друг для друга (с помощью |border=child, либо указав значение первого неименованного параметра равное child, например: {{Навигационная таблица|child ...}}, {{Навигационная таблица с колонками|child ...}} or {{Навигационная таблица с блоками|child ...}}).

См. также