Дефолтный шаблон
Этот сайт сделан на дефолтном шаблоне — то, что вы видите прямо сейчас, и есть он.
Дефолтный шаблон — встроенный макет страницы, который trip2g использует по умолчанию. Он обеспечивает полный набор возможностей: шапка, подвал, боковые панели, оглавление, обратные ссылки и сетка карточек для связанных заметок.
Всё управляется через frontmatter — писать HTML не нужно.
Что входит в дефолтный шаблон
Каждая страница может содержать эти секции:
- Шапка — логотип и навигация сайта (из markdown-заметки)
- Левая боковая панель — оглавление, обратные ссылки или меню
- Правая боковая панель — исходящие ссылки, виджеты или пусто
- Контент — markdown-разметка вашей заметки
- Сетка карточек — связанные заметки (большие, средние, список)
- Подвал — навигация и информация сайта (из markdown-заметки)
Функциональные заметки: шапка, подвал и боковые панели
Шапка, подвал и боковые панели — это обычные markdown-заметки из вашего хранилища. Вы пишете их как обычные заметки, а trip2g подставляет их в нужное место на каждой странице.
Trip2g разрешает, какую заметку показать в каждой секции, в таком порядке:
- frontmatter самой заметки —
header: [[моя-шапка]]в заметке переопределяет всё - Glob-секции — заметка объявляет, для каких путей она является шапкой/подвалом/панелью
- Автозагрузка —
_header.md,_footer.md,_left_sidebar.md,_right_sidebar.md - Секция отсутствует
Автозагрузка (рекомендуемый способ для большинства сайтов)
Если в вашем хранилище есть заметка _header.md, trip2g автоматически использует её как шапку на всех страницах — без каких-либо настроек в отдельных заметках.
Аналогично работают:
_footer.md— подвал для всех страниц_left_sidebar.md— левая боковая панель для всех страниц_right_sidebar.md— правая боковая панель для всех страниц
Пример _header.md:

- [Главная](/)
- [Документация](/docs)
- [О сайте](/about)
Заметка не требует frontmatter. Шапка извлекает:
- Первое изображение — логотип сайта
- Первый список — пункты навигации
Пример _left_sidebar.md:
### Начало работы
- [Быстрый старт](/docs/quick-start)
- [Установка](/docs/install)
### Продвинутое
- [Шаблоны](/docs/templates)
- [API](/docs/api)
Для заголовков групп в боковой панели используйте ### (заголовок h3), а не жирный текст. Интерфейс отображает ### как полноценные метки секций.
Glob-секции (разные шапки для разных разделов)
Если нужны разные шапки или боковые панели для разных разделов сайта, добавьте glob-поля во frontmatter заметки — и она автоматически применится к нужным страницам.
Добавьте {section}_includes во frontmatter любой заметки, чтобы она стала glob-секцией:
---
header_includes:
- blog/*
- articles/**
header_excludes:
- blog/premium/*
header_include_property: published
header_exclude_property: draft
header_priority: 10
content: [self]
free: true
---
# Шапка блога
- [[Главная блога]]
- [[Категории]]
- [[Архив]]
Этот файл будет шапкой для всех заметок, путь которых соответствует blog/* или articles/**, — кроме заметок из blog/premium/*, заметок без ключа published во frontmatter и заметок с ключом draft.
Поля frontmatter glob-секций
Замените {section} на одно из: header, footer, left_sidebar, right_sidebar.
| Поле | Тип | Обязательно | По умолчанию | Примечание |
|---|---|---|---|---|
{section}_includes |
строка или массив | да (для активации) | — | Glob-паттерны (doublestar). Строка или список строк. |
{section}_excludes |
строка или массив | нет | нет | Glob-паттерны для исключения. Применяются после includes. |
{section}_include_property |
строка | нет | — | Только заметки, у которых есть этот ключ во frontmatter |
{section}_exclude_property |
строка | нет | — | Пропустить заметки, у которых есть этот ключ |
{section}_priority |
целое число | нет | 0 |
Выигрывает файл с наибольшим числом при совпадении нескольких |
Поле content работает так же, как у любой заметки: self — тело самого файла, [[ссылка]] — вставка другой заметки и т.д.
Один файл — несколько ролей
Один файл может одновременно быть шапкой и подвалом:
---
header_includes: "**"
footer_includes: "**"
content: [self]
free: true
---
Шапка и подвал по умолчанию для всех страниц.
Скрытие glob-секций из листинга
Добавьте префикс _ к имени файла, чтобы скрыть его из сетки и списков сайта:
_blog-header.md ← скрыт из листинга, работает как glob-секция
blog-header.md ← виден как обычная заметка И работает как glob-секция
Переопределение в отдельной заметке (frontmatter)
Если нужно задать шапку, подвал или боковую панель для конкретной страницы, укажите ссылку в frontmatter:
---
header: [[_header]]
footer: [[_footer]]
left_sidebar:
- TOC
- Backlinks
right_sidebar: false
---
Скрыть шапку: header: false
Скрыть подвал: footer: false
Скрыть левую панель: left_sidebar: false
Скрыть правую панель: right_sidebar: false
Доступные виджеты для боковых панелей:
TOC— интерактивное оглавление (заголовки текущей заметки)Backlinksилиinlinks— заметки, которые ссылаются на этуoutlinks— ссылки из этой заметки на другие[[Название]]— встроить другую заметку по названиюпуть/к/файлу.md— встроить заметку по пути
Полный пример: сайт документации
Сайт с общей шапкой для всех страниц и отдельной боковой панелью для раздела API.
_header.md — применяется ко всем страницам (автозагрузка):

- [Главная](/)
- [Документация](/docs)
- [Блог](/blog)
_api-sidebar.md — левая панель только для раздела API (glob-секция):
---
left_sidebar_includes: "docs/api/**"
left_sidebar_priority: 10
content: [self]
free: true
---
### Справочник API
- [[Аутентификация]]
- [[Эндпоинты]]
- [[Лимиты запросов]]
docs/api/endpoints.md — обычная заметка, никаких полей макета не нужно:
---
title: Эндпоинты
---
Документация по эндпоинтам API...
Результат: docs/api/endpoints.md получит _header.md как шапку (через автозагрузку) и _api-sidebar.md как левую панель (через glob-совпадение). Заметки вне docs/api/ получат только шапку.
Сравнение с frontmatter-патчами
Оба инструмента позволяют назначать шапки и боковые панели сразу для множества заметок. Разница:
- Frontmatter-патчи добавляют поля во frontmatter заметок при загрузке. Заметка получает
header: [[x]], как если бы вы написали его вручную. - Glob-секции разрешаются при рендеринге — из frontmatter самого файла-секции. Отдельные заметки остаются нетронутыми.
В большинстве случаев glob-секции проще: задайте правила сопоставления один раз в файле-секции — и готово. Frontmatter-патчи полезны, когда нужно задать несколько свойств одновременно (например, free: true и header: для целой папки).
→ Документация по frontmatter-патчам
Блоки контента
Свойство content управляет, какие секции появятся в основной области:
---
content:
- self
- magazine
---
Доступные блоки контента:
selfилиselfcontent— сама заметка с заголовком и текстомmagazine— сетка связанных заметок (см. ниже)[[Название]]— встроить заметку по названиюпуть/к/файлу.md— встроить заметку по пути
Поведение по умолчанию:
- Если не указали
content, показывается только сама заметка (self) - Если заметка — корень сайта без индекса, показывается
magazine
Макет сетки карточек
Сетка отображает связанные заметки в виде карточек с трёхуровневой иерархией:
| Уровень | Позиция | Количество | Стиль |
|---|---|---|---|
| Featured | Первая | 1 | Большая, на всю ширину |
| Сетка | 2–5 | 4 | Средние, 4 в ряд |
| Список | 6+ | Много | Минимальный, вертикально |
Включите сетку на индексной странице:
---
title: Блог
content:
- magazine
magazine_include_files: "blog/**/*.md"
magazine_sort_property: priority
---
Свойства сетки
magazine_include_files — Glob-паттерн для выбора заметок
magazine_include_files: "blog/*.md" # Все посты в blog/
magazine_include_files: "posts/**/*.md" # Все .md в posts/ рекурсивно
magazine_include_files: "docs/**/README.md" # Все README.md файлы
По умолчанию: **/*.md (все заметки)
magazine_exclude_files — Glob-паттерн для исключения заметок из сетки
magazine_exclude_files: "**/*Telegram.md" # Исключить Telegram-версии по имени
magazine_exclude_files: "drafts/**" # Исключить черновики
magazine_exclude_files: "archive/*.md" # Исключить архивные посты
Применяется после magazine_include_files. По умолчанию не задан — ничего не исключается.
magazine_exclude_property — Исключить заметки с определённым полем frontmatter
magazine_exclude_property: telegram_publish_at
Заметки с этим полем не появятся в сетке. Полезно, когда Telegram-версии заметок лежат рядом с веб-версиями.
magazine_sort_property — Сортировать карточки по полю frontmatter
magazine_sort_property: priority
Заметки с этим полем списываются первыми (по убыванию значения), остальные — по дате создания по убыванию.
Пример:
---
title: Важный пост
priority: 100
---
magazine_include_property — Показывать только заметки с определённым полем
magazine_include_property: featured
Появятся только заметки с featured: true (или другим истинным значением) во frontmatter.
Исключение Telegram-заметок из сетки
Когда вы публикуете и на сайт, и в Telegram, Telegram-версии часто лежат в той же папке. Два способа исключить их:
По имени файла — если Telegram-заметки следуют соглашению (например, Мой пост. Telegram.md):
---
title: Ежедневные отчёты
content:
- magazine
magazine_include_files: "reports/**/*.md"
magazine_exclude_files: "**/*Telegram.md"
---
По свойству frontmatter — если у Telegram-заметок есть telegram_publish_at:
---
title: Ежедневные отчёты
content:
- magazine
magazine_include_files: "reports/**/*.md"
magazine_exclude_property: telegram_publish_at
---
Оба способа можно комбинировать.
Карточки сетки
Каждая карточка показывает:
- Эскиз — первое изображение в заметке (если есть)
- Заголовок — из frontmatter
- Описание — из поля
description(или первый параграф, если нет описания) - Ссылку — на полную заметку
Примеры использования
Главная страница с сеткой
---
title: Главная
content:
- self
- magazine
magazine_include_files: "**/*.md"
magazine_sort_property: featured_on_home
left_sidebar: false
right_sidebar: false
---
# Добро пожаловать
Исследуйте наш контент ниже.
Отметьте заметки для главной страницы:
---
title: Важная тема
featured_on_home: true
---
Сайт документации
---
title: Документация
content:
- self
left_sidebar:
- _sidebar.md
right_sidebar:
- TOC
- outlinks
---
Блог с избранными постами
---
title: Блог
content:
- magazine
magazine_include_files: "blog/**/*.md"
magazine_sort_property: featured
---
Посты блога:
---
title: Последние новости
featured: 50
description: Резюме недавних обновлений
---
Гибкость через frontmatter-патчи
Прописывать header, footer, left_sidebar и lang в каждой заметке вручную — бессмысленно. Frontmatter-патчи позволяют задать эти свойства один раз для целой папки.
Например, эта документация управляется вот так:
# Все страницы — публичные
**/*.md → {free: true}
# Русский сайдбар для всего RU-раздела
ru/user/**/*.md → {left_sidebar: "ru/user/_sidebar.md"}
# Русскоязычные шапка и подвал
ru/**/*.md → {header: "[[ru/_header]]", footer: "[[ru/_footer]]"}
Ни одна заметка не знает о шаблоне — всё приходит снаружи через патчи.
→ Полная документация по frontmatter-патчам
Переключение на свой шаблон
Если вам нужен больше контроль, чем дают свойства frontmatter, создайте собственный шаблон. См. templates для полной системы шаблонов.
---
layout: my-custom-template
title: Моя страница
---
Любая заметка может использовать либо дефолтный шаблон (без layout), либо свой.
Ссылки на посты в Telegram
Если заметка опубликована в Telegram-канале, шаблон показывает синюю кнопку «Читать в Telegram» над заголовком. По нажатию открывается пост в Telegram.
Кнопка появляется автоматически в трёх случаях.
1. Опубликовано через trip2g
Когда вы публикуете заметку в Telegram через систему публикации trip2g, кнопка появляется автоматически. Если заметка отправлена в несколько каналов — каждый канал получает свою кнопку с названием канала.
Никакой frontmatter не нужен — trip2g хранит информацию об отправленных сообщениях в базе данных.
2. Импорт из Telegram
У заметок, импортированных из Telegram-канала, ссылка уже есть во frontmatter:
---
telegram_publish_channel_id: "1234567890"
telegram_publish_message_id: 42
telegram_publish_message_link: https://t.me/c/1234567890/42
---
Поле telegram_publish_message_link устанавливается автоматически при импорте. Кнопка использует этот URL напрямую.
Для публичных каналов формат ссылки — https://t.me/channelname/42. В этом случае кнопка показывает имя канала: «Читать на @channelname».
3. Альтернативы (ссылка на Telegram-версию)
Если у вас есть веб-версия и отдельная Telegram-версия одного контента, используйте поле alternatives:
---
title: Моя статья
alternatives:
- "[[Моя статья. Telegram]]"
---
Связанная заметка (Моя статья. Telegram) должна содержать telegram_publish_message_link во frontmatter или быть опубликована через систему публикации trip2g. Шаблон разрешает вики-ссылку, извлекает ссылку на Telegram и показывает кнопку на родительской странице.
Приоритет
Шаблон проверяет источники в таком порядке:
- База данных (опубликовано через trip2g) — проверяется первой, поддерживает несколько каналов
- Frontmatter
telegram_publish_message_link— запасной вариант для импортированных заметок - Альтернативы — извлекаются из связанных заметок