---
title: "Шаблоны и переменные"
id: "1979"
type: "page"
slug: "templates"
published_at: "2026-09-20T15:43:03+00:00"
modified_at: "2026-09-21T00:00:47+00:00"
url: "https://pastukhov.com/agents/portal/docs/templates"
markdown_url: "https://pastukhov.com/agents/portal/docs/templates.md"
excerpt: "Часто одних и тех же страниц много, и отличаются они только значением — например, «Новости…"
---

# Шаблоны и переменные

[https://pastukhov.com/agents/portal/docs/templates.md](https://pastukhov.com/agents/portal/docs/templates.md)

Часто одних и тех же страниц много, и отличаются они только значением — например, «Новости по Python» и «Новости по Go». Чтобы не заводить страницу под каждый вариант, достаточно одной страницы-образца. Значение подставляется в неё из адреса.

## Страница-образец

Образец — это папка, имя которой записано в квадратных скобках, например `[tag]`. Одна такая папка обслуживает сколько угодно адресов: `news/python`, `news/go`, `news/rust` — все они откроют одну и ту же страницу, но с разными значениями внутри. Новую папку под каждый вариант создавать не нужно.

- **Статичная страница всегда важнее образца.** Если завели отдельную папку `news/press-releases`, именно она и откроется по этому адресу, а образец останется для остальных значений.
- **Правка «по адресу образца» меняет сам образец.** Если агент сохраняет страницу по адресу вида `news/python`, а отдельной папки нет, изменения попадут в общий образец — и это правильно: так один раз поправленный текст сразу улучшится для всех значений.

## Откуда берутся значения

- **Из адреса.** В ссылке `/p/news/python` значение `python` само попадает в переменную.
- **Из ссылки.** Значение можно передать в конце адреса после знака вопроса, например `?tag=python`.
- **Из выбора на странице.** Если у переменной несколько возможных значений, её можно выбрать прямо на открытой странице.

## Если значения нет

Когда образец открыли без нужного значения, портал не угадывает, что подставить. Вместо этого сверху страницы показывается блок **Переменные пути** со списком выбора. Рядом видно **Итоговый путь** — тот адрес, который получится, — а кнопка **Применить** открывает страницу по этому адресу. Ошибки в выборе быть не может: портал сначала показывает, куда ведёт.

## Куда подставляются значения

Значение переменной подставляется во все текстовые поля страницы: в заголовок страницы, её описание, заголовки блоков, подписи кнопок, адреса переходов и в сами тексты. Поэтому страница-образец выглядит как обычная страница, а не как шаблон с «дырками».

## Если шаблон с ошибкой

Бывает два случая. Если в тексте упомянута переменная, которой не существует, на её месте останется пустое место — страница откроется, просто без этого значения. Если же шаблон сломан — например, в подстановке пропущен закрывающий элемент, — проверка структуры предупредит агента, и он поправит страницу. Читателю такое сообщение не показывается. Подробнее — в разделе [Проверки страниц](/agents/portal/docs/validation)
.

Дальше: кому видно страницу — в разделе [Доступ к страницам](/agents/portal/docs/access)
; как устроен публичный сайт — в разделе [Публичный сайт](/agents/portal/docs/public-site)
; как страница устроена на диске — в разделе [Формат документа](/agents/portal/docs/documents)
.

[← Оглавление документации](/agents/portal/docs)
