Формат документа

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

Страница — это папка

У каждой страницы своя папка. Внутри — три вида содержимого:

  • Файл описания — здесь записано всё о странице: заголовок, описание, иконка, из каких блоков она состоит, какой у неё доступ и настройки.
  • Текстовые файлы — крупные тексты блоков вынесены из описания в отдельные файлы. Так описание остаётся коротким и обозримым, а правки в истории версий — понятными.
  • Папка картинок — изображения страницы лежат рядом, в отдельной папке.

Выглядит это примерно так:

portal/                          корень портала
├── document.json                 описание главной страницы
├── {блок}.md                     тексты блоков главной
├── assets/                       картинки главной
└── news/
    ├── document.json
    └── {блок}_intro.md

Зачем именно так

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

Что лежит в описании страницы

  • Заголовок — название страницы, оно же показывается в дереве. Обязательное поле.
  • Описание и иконка — короткая пояснительная строка под заголовком и значок страницы в дереве.
  • Блоки — из чего собрана страница, по порядку. Может быть пустым списком, если страница пока только задумана.
  • Переменные — объявленные переменные для страниц-образцов (см. Шаблоны и переменные).
  • Доступ — кто может открыть страницу: только администраторы, сотрудники после входа или все желающие (см. Доступ к страницам).
  • Настройки — ширина страницы, участие в меню, рекомендация от агента и настройки самого сайта: его название, значок и глубина меню.

Что сервер ведёт сам

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

Адреса страниц

Адрес страницы — это путь по папкам от корня портала. Имена пишутся латиницей в нижнем регистре через дефис, например press-releases. Отдельный случай — папка с именем в квадратных скобках, например [tag]: это образец, который обслуживает сразу много адресов. Подробнее — в разделе Шаблоны и переменные.

Подстановка значений

Когда страница читается, сервер подставляет значения переменных во все её строки: в заголовок страницы, описание, заголовки блоков, подписи кнопок и адреса ссылок. Тексты блоков подставляются уже в браузере — так образец мгновенно показывает нужный вариант при переходе по адресу.

Чего в контенте нет

Часть данных лежит рядом с порталом, но в сам контент не попадает. Окружение Python (набор программ, которыми считаются скрипты), рабочая папка для файлов скриптов и пометки о непрочитанных страницах — всё это служебные данные сервера. Они не входят в историю версий и при копировании портала на другой сервер переносятся отдельно или создаются заново.

Дальше: как из блоков собирается страница — в разделе Блоки; как вести много адресов одной страницей — в разделе Шаблоны и переменные; чем управляет агент — в разделе Управление агентом.

← Оглавление документации