Ограничить редактирование удалённых тем

Уже довольно давно лучшей практикой считалось избегать редактирования тем, установленных из удалённого Git-репозитория, непосредственно в локальной установке Discourse. Любые изменения в коде темы или загруженные файлы стираются при обновлении темы из удалённого репозитория.

В этом коммите мы убрали возможность локального редактирования удалённой темы и теперь принудительно применяем эту лучшую практику в Discourse.

Что произойдёт, если у меня есть удалённая тема с локальными изменениями?

Ничего на данный момент. Ваша тема останется без изменений, пока вы не удалите её или не обновите из удалённого репозитория.

Как сохранить мои локальные правки?

Если ваши изменения касаются только CSS:

Вы можете перенести изменения, касающиеся только CSS, в новый локальный компонент темы. Для этого:

  1. Нажмите Установить
  2. Нажмите Создать новый
  3. Нажмите кнопку Редактировать в правой панели.
  4. Скопируйте ваши изменения CSS в соответствующий файл (common/mobile/desktop).
  5. Сохраните и включите компонент темы.
  6. Обновите удалённую тему, чтобы перезаписать локальные изменения и избежать дублирования CSS.

Если вы изменили больше, чем только CSS (JS/Шаблоны):

Мы рекомендуем, если вы хотите сохранить свои локальные правки, перевести тему в статус локальной. Для этого:

  1. Откройте тему в разделе Администрирование > Настройка
  2. Нажмите Экспорт, чтобы загрузить тему вместе с вашими локальными изменениями.
  3. Нажмите Установить в списке тем, затем выберите С вашего устройства
  4. Загрузите экспортированную тему, установите и включите её, как и раньше.

Другой вариант для заинтересованных — создать форк удалённой темы на GitHub, закоммитить ваши изменения в форкнутый репозиторий и установить этот форк на ваш экземпляр Discourse. Это даёт возможность перебазировать ваши изменения поверх любых будущих обновлений основного репозитория, чего не обеспечивает переход к локальной теме.

Наконец, обязательно удалите удалённую тему, чтобы избежать дублирования изменений и путаницы в будущем.

35 лайков

Я использовал эту функцию, чтобы быстро просматривать изменения моей удалённой темы. Можно ли этого добиться сейчас? Я не хочу фиксировать изменение высоты где-либо, отправлять его, извлекать и обновлять только для того, чтобы увидеть, что изменение было слишком большим или слишком маленьким :frowning:

1 лайк

Один из способов — использовать Discourse Theme CLI (консольное приложение для создания тем), чтобы протестировать компонент с другим именем перед отправкой коммита. Другой вариант — использовать тестовый или промежуточный сайт.

2 лайка

Значит, это CLI! Отлично! Я не знал, что такое вообще существует, это очень поможет.

Спасибо за подсказку!

2 лайка

Это здорово! И вы будете рады, что больше никогда не придется редактировать в веб-браузере! :clinking_glasses:

4 лайка