Сборка и упаковка
Когда вы довольны тем, как выглядит ваша тема, вы превращаете её в один файл, который сервер Pano может установить. Эта страница проведёт вас через сборку, проверку и упаковку темы — предварительный опыт не требуется.
Сборка для разработки и production-сборка
Во время работы вы запускаете bun run dev. Это сборка для разработки: она быстрая, обновляется в момент сохранения файла и пропускает медленные шаги, которые не нужны при проектировании. Она предназначена только для ваших глаз, на вашем собственном компьютере.
Когда вы готовы к выпуску, вы создаёте production-сборку. Это отполированная версия: всё оптимизировано, упаковано компактно и подготовлено к работе на реальном сервере. Посетители настоящего сайта Pano всегда видят production-сборку.
Ничего не нужно переключать вручную — команды ниже делают всё правильно.
Идентичность вашей темы — manifest.json
В корне папки вашей темы лежит manifest.json — карточка, которая говорит Pano (и всем остальным), что представляет собой эта тема. Каркас создал его за вас, но перед выпуском вам следует его заполнить:
{
"id": "my-theme",
"title": "My Theme",
"description": "A clean, dark theme for survival servers",
"version": "1.0.0",
"author": "YourName",
"panoVersion": "1.0.0",
"screenshots": ["screenshots/1.png"],
"premium": false
}| Поле | Что это такое |
|---|---|
id | Уникальный идентификатор вашей темы — имя в нижнем регистре, разделённое дефисами, как my-theme. Pano использует его, чтобы различать темы, а файл пакета назван в его честь (my-theme-1.0.0.zip). Выберите его однажды и никогда не меняйте после публикации: новый id считается совершенно другой темой. Он также не должен быть vanilla-theme — check это отклонит. |
title | Человекочитаемое имя, показываемое пользователям в панели. |
description | Одно-два предложения о том, как выглядит тема. |
version | Версия выпуска. Если вы используете автоматизацию выпуска, она проставляется за вас — не повышайте её вручную. |
author | Ваше имя или имя команды. |
panoVersion | Версия Pano, на которую нацелена ваша тема. |
screenshots | Список путей к изображениям (см. ниже). |
premium | false для бесплатной темы; true включает защиту платной лицензией. См. Публикация и Premium. |
Добавление скриншотов
Положите изображения в папку screenshots/ в корне вашей темы и перечислите их в манифесте:
my-theme/
├─ manifest.json
└─ screenshots/
├─ 1.png
└─ 2.png"screenshots": ["screenshots/1.png", "screenshots/2.png"]Сборка автоматически копирует папку screenshots/ в ваш пакет, поэтому изображения отправляются внутри .zip. Хороший скриншот — полностраничный снимок главной страницы вашей темы: это первое, что люди видят при просмотре тем.
Шаг 1 — Проверка
Перед сборкой запустите страховочную сеть:
bun run checkЭта команда проверяет вашу тему и не даёт выпустить что-то сломанное. Она проверяет:
| Что проверяет | Почему это важно |
|---|---|
| Версия Svelte | Ваша версия svelte должна точно совпадать с версией движка. Расхождение молча ломает установленные плагины. |
| Сохранены слоты плагинов | Любое изменённое вами представление должно по-прежнему содержать все точки монтирования плагинов, что были в оригинале. Удалите хоть одну — и установленные плагины молча исчезнут. |
| Корректность схемы настроек | Добавленные вами настройки должны быть объявлены правильно, чтобы панель могла их сохранять и сбрасывать. |
| Разбор переводов | Каждый файл в lang-overrides/ должен быть корректным и чисто сливаться. См. Локализация. |
| Полнота манифеста | manifest.json должен содержать все обязательные поля, а его id не должен быть vanilla-theme. |
Если check сообщает о проблеме, исправьте её и запустите снова. Зелёный check означает, что тему можно собирать и упаковывать.
Шаг 2 — Сборка
Откройте терминал в папке вашей темы и выполните:
bun run buildЭта команда создаёт готовую, оптимизированную версию вашей темы в папке build/. Считайте папку build/ вашей темой, полностью собранной и готовой, — но ещё не упакованной.
Сборки воспроизводимы
Сборка одного и того же кода дважды даёт побайтово идентичный результат. Для премиум-тем это очень важно: SHA-256 пакета (уникальный отпечаток файла) является идентификатором вашей лицензии. Один и тот же код на входе — один и тот же отпечаток на выходе. См. Публикация и Premium.
Шаг 3 — Упаковка
Теперь заверните сборку в один устанавливаемый файл:
bun run packageЭта команда создаёт файл .zip — самодостаточный пакет, который сервер Pano может установить прямо из панели. Этот один файл и есть вся ваша тема.
Установка и тестирование на своём сервере
Прежде чем делиться темой, установите её на свой Pano, чтобы убедиться, что она работает от начала до конца:
- Откройте панель Pano в браузере и войдите как администратор.
- Перейдите в Просмотр → Темы.
- Выберите Установить (или Установить тему) и загрузите только что собранный
.zip. - Активируйте тему и откройте сайт, чтобы увидеть её вживую.
TIP
Это в точности тот же процесс установки, которому будут следовать ваши пользователи. Протестировав его самостоятельно первым, вы избежите сюрпризов, когда вашу тему установит кто-то другой.
Что дальше
- Публикация и Premium — поделитесь темой с другими и при желании сделайте её премиум.
- Локализация — переведите тему на другие языки.