Редактирование/Вики-разметка

**Вики-разметка** — язык разметки, использующийся для оформления текста на веб-сайтах, относящихся к классу вики-проектов. Вики-разметка позволяет упростить доступ к некоторым возможностям языка **HTML**.

Используйте редактор исходного кода для использования всех возможностей разметки.

Хотите что-то протестировать из примеров ниже? Заходите в песочницу.

## Указание ссылок и списки

Создание ссылки

Исходный код

```
[[Заглавная страница]]
```

Описание
Двойные квадратные скобки создают ссылку на страницу вики.

Результат
Заглавная страница

Несуществующие ссылки

Исходный код

```
[[Несуществующая статья]]
```

Описание
Красные ссылки обозначают ещё не созданные статьи.

Результат
Несуществующая статья

Изменение заголовка

Исходный код

```
На [[Заглавная страница|заглавную страницу]]
```

Описание
После написания вертикальной черты можно изменить падеж слова или просто изменить заголовок ссылки на любой требуемый/желаемый.

Результат
На заглавную страницу

Окончания ссылок

Исходный код

```
[[Тайник]]е
```

Описание
В конце квадратных скобок можно выставить окончание, которое сольётся с основным названием. В основном это используется, если название статьи состоит из одного слова и оно в именительном падеже.

Результат
Тайнике

Ссылка с другого пространства имён.

Исходный код

```
[[Шаблон:Панель 3.0|Панель 3.0]]
```

Описание
Можно также создавать ссылки из другого пространства имён.

Результат
Панель 3.0

Заголовок без круглых скобок

Исходный код

```
[[Война (оружие)|]]
```

Описание
Указание лишь единой черты после названия статьи сделает её заголовок без круглых скобок.

Результат
Война

Заголовок без пространства имён

Исходный код

```
[[MediaWiki:Chat.js|]]
```

Описание
Так же можно и скрыть пространства имён.

Результат
Chat.js

Ссылка на категоию

Исходный код

```
[[:Категория:Warframe|Warframe]]
```

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

Результат
Warframe

Добавление файла

Исходный код

```
[[Файл:Warframe.png|130px]]
```

Описание
Для добавления файла используется соответствующее пространство имён. В конце названия файла необходим располагаться его формат. Список поддерживаемых форматов: **gif**, **ico**, **jpeg**, **jpg**, **odc**, **odf**, **odg**, **odi**, **odm**, **odp**, **ods**, **odt**, **oga**, **ogg**, **ogv**, **pdf**, **png** и **svg**. Чтобы сделать ссылку на файл, в её начале используется двоеточие. У каждых форматов есть свои настройки/атрибуты, которые разделяются вертикальной чертой.

Результат

Атрибуты изображений

Исходный код

```
```

Описание
У форматов изображений есть свои атрибуты, позволяющие изменить размеры, позиционирование и т.п. Форматы изображений: **jpeg**, **jpg**, **png**, **svg** и **gif**.
**Позиционирование**: right, left, center;

**Ширина**: **120px** — ширина в 120 пикселей;

**Высота**: **x120px** — высота в 120 пикселей;

**Ссылка**: **link=Название статьи**. Чтобы сделать изображение некликабельным, обычно, значение оставляют пустым (**link=**)

**Миниатюра**: для минимизирования изображения используется атрибут **thumb**;

**Рамка**: рамку можно задать при помощи атрибута **border**;

**Пояснительная подпись**: в качестве атрибута можно добавить пояснительную подпись. Пояснительная подпись показывает описание изображения, если участник выключил функцию показа изображений. Также, если был указан атрибут **thumb**, подпись будет выведена ниже и на неё будет влиять вики-разметка;

**Масштабирование**: масштабирование задаётся атрибутом **upright**=0.5. Работает только вместе с атрибутом **thumb**. Диапазон значений: от **1** до **0.003**.

Результат

Ссылки на статьи других проектов викия

Исходный код

```
[[w:c:ru.anime-characters-fight:Ятогами Тока|ACF]]
```

Описание
При помощи префикса w:c: можно создать ссылку на иной проект викия с указанием нужной статьи.

Результат
ACF

Ссылки на статьи других проектов викия с указанием языка

Исходный код

```
[[w:c:stalker:ru:Заглавная страница|Stalker]]<br />Альтернатива: [[w:c:ru.stalker:Заглавная страница|Stalker (Альтернатива)]]
```

Описание
После названия вики можно указать язык проекта. Также можно указать язык вместе с названием вики (это было в примере выше). Сокращения некоторых языков: **en**, **de**, **es**, **fr**, **hu**, **it**, **ja**, **ko**, **nl**, **pl**, **pt**, **tr**, **uk**, **vi**, **zh**

Результат
Stalker
Альтернатива: Stalker (Альтернатива)

Ссылки на иностранные языки текущего проекта

Исходный код

```
[[:en:Frost|Frost]]
```

Описание
Можно в короткой форме указывать ссылки на иноязычные проекты вики (если они существуют). Такая форма указывает иноязычные ссылки только для текущего википроекта (т.е **Warframe**).

Результат
Frost

Создание разделов

Исходный код

```
=Раздел=
==Подраздел==
===Подподраздел===
```

Описание
Оборачивание слова в знак "равно" сделает из него раздел. Можно создавать максимум 6 подразделов, используя знаков "равно" с обеих сторон.

Результат

Раздел
Подраздел
Подподраздел

Маркированный список

Исходный код

```
*1
*2
**2.1
**2.2
***2.2.1
*3
```

Описание
Создание списков осуществляется при помощи звёздочек. Чем больше звёздочек, тем больше будет отступ слева.

Результат

* 1
* 2
	+ 2.1
	+ 2.2
		- 2.2.1
* 3

Нумерованный список

Исходный код

```
#Первый
#Второй
#Третий
```

Описание
Так же и создаются нумерованные списки. Только вместо звёздочек используется знак диез (решётка).

Результат

1. Первый
2. Второй
3. Третий

Комбинация списков

Исходный код

```
#Первый
#*Раз
#*Два
#Второй
#Третий
#*1
#**1.1
```

Описание
Можно и комбинировать типы списков.

Результат

1. Первый
	* Раз
	* Два
2. Второй
3. Третий
	* 1
		+ 1.1

Отступ

Исходный код

```
:отступ
нормальное написание
```

Описание
При помощи двоеточия в начале строки можно создать небольшой отступ.

Результат

отступ
нормальное написание

Двухуровневые списки

Исходный код

```
;Двухуровневый
:Список
;Разметка
:Вики
```

Описание
Точка с запятой и двоеточие после неё создают двухуровневый список.

Результат

Двухуровневый
Список
Разметка
Вики

Перенаплавления

Исходный код

```
#REDIRECT [[Название статьи]]
```

Описание
Перенаправления — особый тип страницы, перенаправляющий пользователя на указанную статью. Крайне рекомендуется оставлять перенаправления после переименовывания файла, чтобы пользователи могли перейти по файлу используя старую ссылку.

Результат

Внешние ссылки

Исходный код

```
[https://www.google.com <span style="color:red">Google</span>]
```

Описание
На вики допускается создание внешних ссылок. Заголовок можно указать после пробела. В названии заголовка можно использовать вики-разметку/теги. Внешние ссылки крайне не рекомендуется использовать в статьях.

Результат
Google

## Форматирование текста, теги

В форматировании текста могут участвовать некоторые теги из HTML. Тег имеет своё начало и конец. Его эффект распространяется только в диапазоне его оборачивания. Любой тег может быть скомбинирован с каким-то другим. Подробнее про теги можно прочитать здесь.

Жирный текст

Исходный код

```
<b>Жирный текст.</b> Альтернатива: '''жирный текст.'''
```

Описание
Тег **b** делает текст жирным. Также можно обернуть текст в 3 апострофа, и он станет жирным. Буква тега ссылается на слово **bold** — жирный.

Результат
**Жирный текст.** Альтернатива: **жирный текст.**

Курсивный текст

Исходный код

```
<i>Курсивный текст.</i> Альтернатива: ''курсивный текст.''
```

Описание
Оборачивание в тег **i** сделает текст курсивным. Также можно использовать 2 апострофа. Апострофы, как и теги — комбинируемые. Буква тега ссылается на слово **italic** — курсивный.

Результат
*Курсивный текст.* Альтернатива: *курсивный текст.*

Зачёркнутый текст

Исходный код

```

Зачёркнутый текст

```

Описание
Тег **s** зачёркивает текст. Буква тега ссылается на слово **strikethrough** — зачёркивание.

Результат
~~Зачёркнутый текст~~

Подчёркнутый текст

Исходный код

```
<u>Подчёркнутый текст</u>
```

Описание
Тег **u** подчёркивает текст. Буква тега ссылается на слово **underline** — подчёркивание.

Результат
Подчёркнутый текст

Тег span

Исходный код

```
<span style="text-shadow: 2px 2px 5px">Тень</span>
```

Описание
Тег **span** открывает больше возможностей для настройки внешнего вида текста. В атрибуте style можно вписывать различные CSS свойства для текста.

Результат
Тень

Игнорирование разметки

Исходный код

```
<span style="color: gray">Серый текст (тег не сработает)</span>
```

Описание
Тег **nowiki** подавляет интерпретацию разметки.

Результат
<span style="color: gray">Серый текст (тег не сработает)</span>

Показ исходного кода

Исходный код
<pre><b>Жирный текст</b></pre>

Описание
Тег **pre** отформатирует текст так же, как он был набран в исходном коде. Два пробела в начале строки также создают тег **pre**. Его отличие от **nowiki** в том, что он сохраняет все переносы строк и пробелы, а также у него моноширинный шрифт и немного изменённый внешний вид.

Результат

```
<b>Жирный текст</b>
```

Теги и ссылки

Исходный код

```
<i><u><b>[[Жирный текст]]</b></u></i>
```

Описание
Теги применимы к ссылкам.

Результат
*~~**Жирный текст**~~*

Комментарии

Исходный код

```
<!--комментарий-->
```

Описание
В исходном коде можно добавлять свои комментарии для последующих редакторов. Сами такие комментарии никак не влияют на форматирование текста, и используются только для осведомления/описания. Пример невозможно отобразить, однако его можно найти в исходном коде этой статьи.

Результат
Тут комментарий:

Переносы строк

Исходный код

```
Перенос<br />строки
```

Описание
Тег **br** создаёт перенос строки. Этот тег не имеет начала или конца и его не нужно закрывать.

Результат
Перенос
строки

Горизонтальная линиия

Исходный код

```
## Горизонтальная линия<hr /> Альтернатива:
```

Описание
Тег **hr** создаёт горизонтальную линию. Также её можно создать при помощи 4-ёх дефисов **----**. 4 дефиса создают горизонтальную линию только если они были поставлены в начале строки и не имеют продолжения.

Результат
Горизонтальная линия

 Альтернатива:

Подсветка синтаксиса

Исходный код

```
<syntaxhighlight lang="javascript">function inherit(proto) {
	function F() {}
	F.prototype = proto;
	var object = new F();
	return object;
}</syntaxhighlight>
```

Описание
Тег **syntaxhighlight** подсвечивает код. Язык кода можно указать в атрибуте **lang**.

Результат

```
function inherit(proto) {
 function F() {}
 F.prototype = proto;
 var object = new F();
 return object;
}

```

## Создание таблиц

*Примечание:* для понятия некоторых моментов, необходимо знать основы CSS. Тем не менее, это не крайне необходимо, и в некоторых случаях можно обойтись и без CSS.
Создавать таблицы при помощи вики-разметки довольно просто.

Начало таблицы начинается с левой фигурной скобки и вертикальной черты ( **{|** ).

```
```

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

```
{| class="article-table" id="exampleTable" style="width:50%; margin:0 auto;" cellspacing="3" cellpadding="2"
```

Описание некоторых из них:

* **class** — класс таблицы. Классы могут очень значительно повысить читаемость кода (об этом чуть позже).
* **id** — идентификатор. Идентификатор должен быть единственным в своём роде. В основном идентификаторы используют для быстрого обращения к элементу через скрипты. Идентификаторы в явном виде редко применяются к таблицам.
* **style** — стилевой атрибут. Установленные в него свойства будут применяться на таблицу. Некоторые теги таблицы могут наследовать свойства (например, установив **text-alingn:center** в общий стиль таблицы, все элементы будут по центру).
* **cellspacing** задаёт **внешнее** расстояние между ячейками. Этот атрибут имитирует CSS свойство **margin**.
* **cellpadding** задаёт **внутреннее** расстояние между ячейками. Этот атрибут имитирует CSS свойство **padding**.

Не рекомендуется использовать устаревшие атрибуты.

После создания "шапки" таблицы можно приступать дальше. Таблице можно добавить заголовок, используя вертикальную черту и плюс ( **|+** ). Заголовок можно добавить **только в начале** таблицы!

```
{| class="article-table" style="width:50%; margin:0 auto;" cellspacing="3" cellpadding="2"
```

Горизонтальную группу ячеек можно разделять вертикальной чертой с минусом ( **|-** ). После указания заголовка линию можно не разделять.

```
{| class="article-table" style="width:50%; margin:0 auto;" cellspacing="3" cellpadding="2"

```

Далее можно указать верхние ячейки. Добавляются они восклицательным знаком ( **!** ). Такие ячейки имеют отличное от простых ячеек оформление, и обычно, они располагаются наверху таблицы.

```
{| class="article-table" style="width:50%; margin:0 auto;" cellspacing="3" cellpadding="2"
! Колонна 1
! Колонна 2
! Колонна 3
```

Чтобы добавить содержимое для каждой колонны, используется вертикальная черта ( **|** ) и разделитель групп ячеек ( **|-** ).

```
{| class="article-table" style="width:50%; margin:0 auto;" cellspacing="3" cellpadding="2"
! Колонна 1
! Колонна 2
! Колонна 3

```

Закрытие таблицы осуществляется вертикальной чертой и идущей после неё правой фигурной скобкой ( **|}** ).

```
{| class="article-table" style="width:50%; margin:0 auto;" cellspacing="3" cellpadding="2"
! Колонна 1
! Колонна 2
! Колонна 3

```

**В результате получается вот такая таблица**:

Заголовок
 2 ячейка 1 колонны
 3 ячейка 1 колонны

### Стилизация

Существует ещё множество способов изменить внешний вид таблицы. Каждой ячейке можно назначить свои атрибуты. Для установки атрибута в определённую ячейку вновь используется вертикальная черта ( **|** ).

```
{| class="article-table" style="width:50%; margin:0 auto;" cellspacing="3" cellpadding="2"
! style="color: red; text-shadow: 0 0 5px;" | Колонна 1
! style="color: green; text-shadow: 0 0 5px;" | Колонна 2
! style="color: blue; text-shadow: 0 0 5px;" | Колонна 3
```

Результат изменения цветов при помощи атрибута **style**:

Заголовок
 2 ячейка 1 колонны
 3 ячейка 1 колонны

Атрибут **style** всего лишь замена CSS правилам, и применим он, в основном, когда каждой ячейке нужно назначить разное значение определённого свойств(а). Такое обозначение стилей называется **инлайновым**.

```
{| class="article-table" style="width:50%; margin:0 auto;" cellspacing="3" cellpadding="2"
! style="color: red; text-shadow: 0 0 5px;" | Колонна 1
! style="color: green; text-shadow: 0 0 5px;" | Колонна 2
! style="color: blue; text-shadow: 0 0 5px;" | Колонна 3

```

Используя CSS правило, можно было уместить все инлайн стили в несколько строк. Важную роль в этом деле играет класс таблицы, через него можно обратиться к остальным тегам таблицы.

```
.article-table td {
 background-color: #171e23;
 color: #d7d7d7;
}

```

Недостаток этого подхода — редактировать локальный CSS могут только участники со статусом администратор или выше.

*Примечание:* вы можете тестировать различные CSS правила в своём личном пространстве. Все добавляемые изменения будут видны только вам.

### Объединение колонок и ячеек

Иногда бывает необходимость сделать только одну колонну с множеством ячеек. Специальные атрибуты **rowspan** и **colspan** помогают реализовать это.

Значением данных атрибутов является цифра, определяющая количество объединённых колонн по вертикали или горизонтали.

#### Colspan

**Colspan** объединяет ячейки по горизонтали. Например, мы можем избавиться от двух колонн и оставить ячейки со старых старых колонн.

```
{| class="article-table" style="width:50%; margin:0 auto;" cellspacing="3" cellpadding="2"
! style="color: red; text-shadow: 0 0 5px; background-color: #00576f;" colspan="3" | Колонна 1

```

**Результат**:

Заголовок
 2 ячейка 1 колонны
 3 ячейка 1 колонны

**Без colspan**:

Заголовок
 2 ячейка 1 колонны
 3 ячейка 1 колонны

#### Rowspan

**Rowspan** в точности делает тоже самое, что и **colspan**, но объединяет ячейки по вертикали.

```
{| class="article-table" style="width:50%; margin:0 auto;" cellspacing="3" cellpadding="2"
! style="color: red; text-shadow: 0 0 5px;" | Колонна 1
! style="color: green; text-shadow: 0 0 5px;" | Колонна 2
! style="color: blue; text-shadow: 0 0 5px;" | Колонна 3
```

**Результат**:

Заголовок
 2 ячейка 1 колонны
 3 ячейка 1 колонны

**Без rowspan**:

Заголовок
 2 ячейка 1 колонны
 3 ячейка 1 колонны

Важно знать, что для объединение может требовать пустое место в таблице. Добавление **rowspan** / **colspan** без пустых ячеек может искорежить таблицу.

**Последствия rowspan**:

Заголовок
 2 ячейка 1 колонны
 3 ячейка 1 колонны

**Последствия colspan**:

Заголовок
 2 ячейка 1 колонны
 3 ячейка 1 колонны

### Альтернативное построение таблиц

*Примечание:* данная раздел необязателен к прочтению.

Таблицы можно строить и при помощи тегов.

Между этими кодами нет никакой разницы, это можно проверить это в песочнице. Лучше всего читается код с вики-разметкой, поэтому предпочтительнее его и использовать.

* Вики-разметка
* HTML

```
{| class="article-table" style="width:50%; margin:0 auto;" cellspacing="3" cellpadding="2"
! style="color: red; text-shadow: 0 0 5px;" | Колонна 1
! style="color: green; text-shadow: 0 0 5px;" | Колонна 2
! style="color: blue; text-shadow: 0 0 5px;" | Колонна 3
```

```
<table class="article-table" style="width:50%; margin:0 auto;" cellspacing="3" cellpadding="2">
<caption style="color: gold; background-color: #171e23;">Заголовок</caption>
<tr>
<th style="color: red; text-shadow: 0 0 5px;"> Колонна 1 </th>
<th style="color: green; text-shadow: 0 0 5px;"> Колонна 2 </th>
<th style="color: blue; text-shadow: 0 0 5px;"> Колонна 3 </th>
</tr>
<tr>
<td> 1 ячейка 1 колонны </td>
<td> 1 ячейка 2 колонны </td>
<td> 1 ячейка 3 колонны </td>
</tr>
<tr>
<td> 2 ячейка 1 колонны </td>
<td> 2 ячейка 2 колонны </td>
<td> 2 ячейка 3 колонны </td>
</tr>
<tr>
<td> 3 ячейка 1 колонны </td>
<td> 3 ячейка 2 колонны </td>
<td> 3 ячейка 3 колонны </td>
</tr>
</table>

```

Из примера выше можно узнать:

* Вертикальная черта и плюс после неё ( **!+** ) является **caption** тегом.
* Вертикальная черта и минус после неё ( **!+** ) является **tr** тегом. Тег tr является контейнером **td** тегов.
* Восклицательный знак ( **|** ) является **th** тегом.
* Вертикальная черта ( **|** ) является **td** тегом.

## Табберы

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

Для добавления табберов в статью используется такой формат:

```
<tabber>Блок 1 =
Содержимое первого блока
Содержимое второго блока
Содержимое третьего блока
</tabber>

```

**Результат:**

* Блок 1
* Блок 2
* Блок 3

Содержимое первого блока

Содержимое второго блока

Содержимое третьего блока

У табберов отсутствует возможность добавлять класс или идентификатор напрямую, однако можно оборачивать его в тег **div** с нужным классом.

### Использование классов

Для табберов созданы некоторые специальные классы, немного изменяющие их внешний вид. Чтобы класс сработал, нужно обернуть таббер в тег **div** и вписать в качестве значения атрибута **class** один из классов.

**Список существующих классов**:

* **noPaddingInnerTab** — убирает внутренние отступы в контейнере.
* **borderTab** — добавляет контейнеру границу.

Использование класса **borderTab**:

```
<div class="borderTab">
<tabber>Блок 1 =
Содержимое первого блока
Содержимое второго блока
Содержимое третьего блока
</tabber>
</div>

```

**Результат**:

* Блок 1
* Блок 2
* Блок 3

Содержимое первого блока

Содержимое второго блока

Содержимое третьего блока

Использование класса **noPaddingInnerTab**:

```
<div class="noPaddingInnerTab">
<tabber>Блок 1 =
Содержимое первого блока
Содержимое второго блока
Содержимое третьего блока
</tabber>
</div>

```

**Результат**:

* Блок 1
* Блок 2
* Блок 3

Содержимое первого блока

Содержимое второго блока

Содержимое третьего блока

**Классы можно комбинировать**:

```
<div class="noPaddingInnerTab borderTab">
<tabber>Блок 1 =
Содержимое первого блока
Содержимое второго блока
Содержимое третьего блока
</tabber>
</div>

```

**Результат**:

* Блок 1
* Блок 2
* Блок 3

Содержимое первого блока

Содержимое второго блока

Содержимое третьего блока

### Вложенные табберы

В табберы можно вкладывать ещё табберы. Чтобы сделать таббер вложенным, нужно использовать другой формат. Табберы будут конфликтовать, если попытаться сделать это очевидным образом:

```
<tabber>Блок 1 =
<tabber>Вложенный таббер 1 =
Содержимое вложенного блока 1
Содержимое вложенного блока 2
Содержимое вложенного блока 3
</tabber>
Содержимое второго блока
Содержимое третьего блока
</tabber>

```

**Результат**:

Отмечена граница кода для понимания происходящего.

* Блок 1
* Вложенный таббер 2
* Вложенный таббер 3

<tabber>Вложенный таббер 1 =

Содержимое вложенного блока 1
Содержимое вложенного блока 2

Содержимое вложенного блока 3

Содержимое второго блока
Содержимое третьего блока
</tabber>

Вложенные табберы создаются при помощи функции-парсера {{#tag. В этой функции вместо вертикальных чёрт используется **{{!}}**.

* Блок 1
* Блок 2
* Блок 3

* Блок 1/Вложение 1
* Блок 1/Вложение 2
* Блок 1/Вложение 3

Содержимое первого вложенного таббера

Содержимое второго вложенного таббера

Содержимое третьего вложенного таббера

* Блок 2/Вложение 1
* Блок 2/Вложение 2
* Блок 2/Вложение 3

Содержимое первого вложенного таббера

Содержимое второго вложенного таббера

Содержимое третьего вложенного таббера

* Блок 3/Вложение 3
* Блок 3/Вложение 2
* Блок 3/Вложение 3

Содержимое первого вложенного таббера

Содержимое второго вложенного таббера

Содержимое третьего вложенного таббера

## Шаблоны

Почти в каждой статье можно встретить шаблон. Шаблоны обладают своим пространством имён и вызвать их можно двумя фигурными скобками.

**Вызовем шаблон Ауры**:

```
{{Ауры}}
```

**Результат**:

Шаблон:Ауры

Сами шаблоны разделяются на 2 вида. Первый вид — не имеющий настроек, проще говоря, уже готовый шаблон, не требующий заполнения определённых значений. Второй вид — шаблон с настройками. В примере выше вызывался шаблон без настроек.

**Шаблон с настройками**:

```
{{Приобретение
}}
```

**Результат**:

**Необходимые ресурсы**
 Стоимость
 Время сборки
 Стоимость мгновенной сборки

Вызов шаблона с настройками без их заполнения не приведёт к чему-то плохому, просто шаблон выведется пустым.

**Без настроек**:

```
{{Приобретение}}
```

**Результат**:

**Необходимые ресурсы**

### Создание шаблона

//Метка
Создать шаблон может любой участник, для его создания не требуются какие-то особые права участника. Чтобы создать страницу-шаблон, нужно начать её название с Шаблон:. Например: Шаблон:Тестирование
**Теперь мы может вызвать шаблон таким образом**:

```
{{Панель 4.0}}
```

Для создания шаблона с настройками используются переменные. Переменные позволяют вызывать шаблон с разными значениями. Помимо переменных, в шаблон можно добавлять различные функции-парсеры, о которых будет написано чуть позже.