Skip to content

Структура темы

Когда вы создаёте тему из шаблона, вы получаете папку из 17 файлов. Это может показаться большим количеством, но большинство из них не требуют вашего внимания. Эта страница объясняет, для чего нужен каждый из них и какие вы на самом деле редактируете.

Основная идея

Представьте тему Pano как две части, работающие вместе:

  • Движок (@panomc/theme-core) — он делает всё, что работает: вход, регистрацию, плагины, загрузку данных с вашего сервера и сборку сайта. Вы ничего из этого не пишете. Он приходит как пакет, и вы обновляете его, как любой другой пакет.
  • Ваша тема — это только внешний вид: цвета, шрифты, макет и текст. Это та часть, которой вы владеете и которую редактируете.

vanilla-theme — это не шаблон

vanilla-theme — это встроенный вид по умолчанию, с которым поставляется Pano. Это не отправная точка для копирования или форка. Всегда начинайте новую тему с bunx @panomc/theme-core new и позвольте движку делать тяжёлую работу.

Файлы

Вот тема, созданная из шаблона, с примечанием к каждой части:

text
my-theme/
├─ manifest.json          ← ВАШ    имя, версия, автор, скриншоты
├─ theme.config.js        ← ВАШ    ваши переопределения представлений + доп. настройки
├─ core-meta.json         ← авто   уровень движка, который использует ваша тема
├─ package.json           ← авто   зависимости (svelte закреплён на движке)
├─ svelte.config.js       ← авто   однострочный вызов движка
├─ vite.config.js         ← авто   однострочный вызов движка
├─ lang-overrides/        ← ВАШ    только текст, который вы хотите изменить
├─ screenshots/           ← ВАШ    изображения-превью вашей темы
├─ static/                ← ВАШ    ваши изображения, шрифты и другие ресурсы
├─ src/
│  ├─ styles/tokens.scss  ← ВАШ    ваши цвета, шрифты, размеры
│  ├─ styles/style.scss   ← ВАШ    ваш дополнительный CSS
│  ├─ views/              ← ВАШ    ваши переопределения макета (когда нужны)
│  ├─ routes/             ← авто   создаётся `bun run sync` — никогда не редактируйте
│  ├─ lib/                ← авто   создаётся `bun run sync` — никогда не редактируйте
│  ├─ hooks.server.js     ← авто   сгенерирован
│  └─ hooks.client.js     ← авто   сгенерирован
└─ lang/                  ← авто   базовые текстовые файлы — никогда не редактируйте

Файлы, которые принадлежат вам

Это файлы, которые вы редактируете. Именно они делают вашу тему вашей темой.

Файл или папкаДля чего используется
manifest.jsonИмя, версия и данные вашей темы (см. ниже).
theme.config.jsРегистрирует переопределения макета и дополнительные настройки.
src/styles/tokens.scssВаши значения дизайна — цвета, шрифты, радиусы, тени.
src/styles/style.scssЛюбой дополнительный CSS, который вы хотите добавить.
src/views/Собственный макет, когда одних цветов недостаточно.
lang-overrides/Только слова и фразы, которые вы хотите изменить.
screenshots/Изображения-превью, показываемые для вашей темы.
static/Ваши изображения, шрифты и другие файлы.

Файлы, которые генерируются

Эти файлы создаются для вас движком. Никогда не редактируйте их вручную — следующий bun run sync или обновление движка перезапишет их, и ваши изменения исчезнут.

Файл или папкаЧто это
src/routes/Связка страниц, пересоздаётся из движка.
src/lib/Вспомогательный код и мосты, пересоздаются из движка.
lang/Базовый текст каждого языка (меняйте текст через lang-overrides/).
hooks.server.js, hooks.client.jsКрошечные установочные файлы, вызывающие движок.
core-meta.json, package.json, svelte.config.js, vite.config.jsКонфигурация, настроенная генератором шаблона для вас.

Помещайте каждое изменение в файл, который принадлежит вам

Если вы отредактируете сгенерированный файл, ваш труд пропадёт при следующем запуске bun run sync. Редактируйте только файлы, отмеченные как «ваши» выше.

Манифест

manifest.json описывает вашу тему для Pano. У него небольшой набор полей:

ПолеЧто означает
idУникальное имя вашей темы. Оно не может быть vanilla-theme.
titleПонятное имя, которое видят люди.
versionВерсия вашей темы, напр. 1.0.0.
authorВаше имя.
panoVersionВерсия Pano, под которую сделана ваша тема.
screenshotsСписок изображений-превью из вашей папки screenshots/.
premiumtrue, если тема платная, false, если бесплатная.

Что для вас значит «движок обновляется»

Поскольку движок — это пакет, его обновление — всего две команды:

sh
bun update @panomc/theme-core
bunx @panomc/theme-core sync

Первая строка подтягивает новейший движок. Вторая пересоздаёт «авто»-файлы выше, чтобы они ему соответствовали.

Ваш вид остаётся

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