Модульный навибокс

Данная статья служит руководством и макетом для быстрого создания Навибокса на Lua, основываясь на уже готовом Модуле, выложенном на Dev.

## Подключение и создание

Первым делом нужно создать страницу **Модуль:NavboxBuilder** (или с любым другим, не забудьте при этом изменить имя при вызове `#invoke`) и вставить код:

```
return require('Dev:NavboxBuilder/ru')

```

Затем записать в MediaWiki:Wikia.css / MediaWiki:Common.css код:

```
@import url("//dev.wikia.com/load.php?mode=articles&articles=Global\_Lua\_Modules/NavboxBuilder/code.css&only=styles");

```

чтобы придать дефолтную структуру навибоксу в виде центрирования, отступов и т.п..

Затем нужно создать сам шаблон. Для этого создаём страницу шаблона НавибоксКонструктор (или своё название) и включаем модуль для работы шаблона следующим кодом:

```
<onlyinclude>{{#invoke:NavboxBuilder|create}}</onlyinclude>

```

Также можно задать дефолтные цвета для шаблона навибокса. А при необходимости уже при создании другого навибокса задавать конкретные параметры.

```
<onlyinclude>{{#invoke:NavboxBuilder|create
}}</onlyinclude>

```

## Параметры

Ниже расположен перечень всех возможных параметров.
Ниже расположен перечень всех возможных параметров. Для отображения навбокса требуется наличие хотя бы одного списка. Помимо этого, все остальные параметры необязательны.

### Основные

* `Название` – основное название навбокса.
* `Ссылки` – ссылки, отображающиеся на левой стороне от названия.
	+ Здесь может вставляться вики-разметка.
	+ Для работы этого параметра требуется `Название`.
* `Положение` – отвечает за то, закрытый или открытый навбокс по умолчанию.
	+ Значения: *`свёрнутое`* или *`открытое`* (нечувствительны к регистру).
	+ Пустое или неопознанное значение по умолчанию откроет навбокс.
	+ Для работы этого параметра требуется `Название`.
* `Верхний` и `Нижний` – поля выше и ниже разделов и изображений.
* `Левое изображение` и `Правое изображение` – поля рядом с разделами, чаще всего используемые для вставки изображений.
	+ Помимо изображений, сюда можно вставлять любой контент.

### Разделы

Разделы содержат в себе все списки с тем же номером или номером выше следующего раздела.

* `Заголовок n` – оглавление раздела.
	+ n – любое положительное число.
	+ Для его отображения требуется хотя бы один список.
* `Левое изображение n` и `Правое изображение n` – поля рядом со списками этого раздела, чаще всего используемые для вставки изображений.
	+ n – номер существующего оглавления раздела.
	+ Помимо изображений, сюда можно вставлять любой контент.
* `Положение n` – отвечает за то, закрытый или открытый раздел по умолчанию.
	+ n – номер существующего раздела.
	+ Значения: *`свёрнутое`* или *`открытое`* (нечувствительны к регистру).
	+ Пустое или неопознанное значение по умолчанию откроет раздел.
* `Положение заголовка` – то же, что и выше, но влияет на все заголовки.
	+ Значения: *`свёрнутое`* или *`открытое`* (нечувствительны к регистру).
	+ Пустое или неопознанное значение по умолчанию откроет раздел.
	+ Может быть перезаписано через `Положение n`

### Списки

* `Список n` – строчка со списком ссылок.
	+ n – любое положительное число.
* `Группа n` – оглавление списка.
	+ n – номер существующего списка или подсписка.

Подсписки отображаются как внутренние части списка с тем же n.

* `Список n.m` – строчка со списком ссылок.
	+ n и m – любое положительное число.
* `Группа n.m` – оглавление подсписка.
	+ n и m – номер существующего подсписка.

### Стиль

* `Навбокс класс` и `Навбокс стиль` – применяются к основному элементу навбокса.
* `Название класс` и `Название стиль` – применяются к элементу названия.
* `База класс` и `База стиль` – применяются ко всем группам, подгруппам, заголовкам и полям выше и ниже.
* `Верхний класс` и `Верхний стиль` – применяются к полю выше.
* `Нижний класс` и `Нижний стиль` – применяются к полю ниже.
* `Изображение класс` и `Изображение стиль` – применяются к полю с изображением.
* `Левое изображение класс` и `Левое изображение стиль` – применяются к левому полю с изображением.
* `Правое изображение класс` и `Правое изображение стиль` – применяются к правому полю с изображением.
* `Заголовок класс` и `Заголовок стиль` – применяются ко всем заголовкам.
* `Заголовок n класс` и `Заголовок n стиль` – применяются к заголовкам с номером n.
* `Левое изображение n класс` и `Левое изображение n стиль` – применяются к левому полю с изображением в разделе с номером n.
* `Правое изображение n класс` и `Правое изображение n стиль` – применяются к правому полю с изображением в разделе с номером n.
* `Группа класс` и `Группа стиль` – применяются ко всем группам.
* `Подгруппа класс` и `Подгруппа стиль` – применяются ко всем подгруппам.
* `Группа n класс` и `Группа n стиль` – применяются к группам с номером n.
* `Группа n.m класс` и `Группа n.m стиль` – применяются к подгруппам с номерами n и m.
* `Список класс` и `Список стиль` – применяются ко всем спискам.
* `Список n класс` и `Список n стиль` – применяются к спискам с номером n.
* `Список n.m класс` и `Список n.m стиль` – применяются к спискам с номерами n и m.

Название каждого параметра можно изменить. Для этого, импортируя модуль, скопируйте следующий код и вставьте свои параметры:

```
return require('Dev:NavboxBuilder').changeParameters{
 -- Настройки
 links = 'Ссылки',
 state = 'Положение',

 -- Поля
 title = 'Название',
 above = 'Верхний',
 below = 'Нижний',
 limage = 'Левое изображение',
 rimage = 'Правое изображение',

 -- Разделы
 header\_n = 'Заголовок #',
 limage\_n = 'Левое изображение #',
 rimage\_n = 'Правое изображение #',
 state\_n = 'Положение #',

 -- Группы
 group\_n = 'Группа #',
 group\_n\_m = 'Группа #.#',
 list\_n = 'Список #',
 list\_n\_m = 'Список #.#',

 -- CSS
 navbox\_class = 'Навбокс класс',
 navbox\_style = 'Навбокс стиль',
 title\_class = 'Название класс',
 title\_style = 'Название стиль',
 base\_class = 'База класс',
 base\_style = 'База стиль',
 above\_class = 'Верхний класс',
 above\_style = 'Верхний стиль',
 below\_class = 'Нижний класс',
 below\_style = 'Нижний стиль',
 image\_class = 'Изображение класс',
 image\_style = 'Изображение стиль',
 limage\_class = 'Левое изображение класс',
 limage\_style = 'Левое изображение стиль',
 rimage\_class = 'Правое изображение класс',
 rimage\_style = 'Правое изображение стиль',
 header\_class = 'Заголовок класс',
 header\_style = 'Заголовок стиль',
 header\_n\_class = 'Заголовок # класс',
 header\_n\_style = 'Заголовок # стиль',
 limage\_n\_class = 'Левое изображение # класс',
 limage\_n\_style = 'Левое изображение # стиль',
 rimage\_n\_class = 'Правое изображение # класс',
 rimage\_n\_style = 'Правое изображение # стиль',
 group\_class = 'Группа класс',
 group\_style = 'Группа стиль',
 group\_n\_class = 'Группа # класс',
 group\_n\_style = 'Группа # стиль',
 subgroup\_class = 'Подгруппа класс',
 subgroup\_style = 'Подгруппа стиль',
 group\_n\_m\_class = 'Группа #.# класс',
 group\_n\_m\_style = 'Группа #.# стиль',
 list\_class = 'Список класс',
 list\_style = 'Список стиль',
 list\_n\_class = 'Список # класс',
 list\_n\_style = 'Список # стиль',
 list\_n\_m\_class = 'Список #.# класс',
 list\_n\_m\_style = 'Список #.# стиль',

 -- Значения
 value\_expanded = 'открытое',
 value\_collapsed = 'свёрнутое',
}

```

## Пример без css

Данный пример отображает все возможные параметры и способы их оформления.

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

*Примечание:* судя по всему, изображения работают только после Заголовка, за исключением отдельных правого и левого изображения.

### Полный

```
{{НавибоксКонструктор

<!-- Стили -->
}}

```

## Пример других проектов

### Марвелпедия

**Код примера**

```
{{Навибокс

<!-- Стили -->

}}
```

**Код для использования**

```
{{Навибокс

<!-- Стили -->

}}
```