Настройка тем без кнопки «Редактировать код»

Иногда вам может потребоваться настроить тему Discourse, но вы обнаружите, что отсутствует раздел «Пользовательский код» с кнопкой «Редактировать код». Это часто случается с удалёнными темами (темами, установленными из внешнего источника) и предустановленными темами (Horizon и Foundation). Вот как вы всё же можете добавить свои настройки:

Понимание ограничения

Для предустановленных тем вы видите баннер с сообщением:

Эта тема предустановлена и не может быть удалена или изменена

Для удалённых тем обычно появляется сообщение вроде:

Если вы хотите изменить эту тему, вы должны предложить изменения в её репозитории

:discourse2: Размещено на Discourse? Тогда вы можете увидеть: «Редактирование удалённых тем в Discourse отключено. Пожалуйста, свяжитесь с нами, если вам нужна помощь в переносе настроенных удалённых тем в локальную тему».

Варианты настройки

  1. Предложить изменения в основной репозиторий: Если ваши изменения могут быть полезны другим, рассмотрите возможность предложить их оригинальным создателям темы. Для этого требуется знание git и GitHub.
  2. Создать копию (форк) репозитория: Создайте собственную версию репозитория кода темы, внесите свои настройки и используйте скопированную версию. Этот метод требует технических знаний и означает, что вам придётся самостоятельно поддерживать обновления.
  3. Создать пользовательский компонент: Этот метод позволяет добавлять настройки без изменения оригинальной темы. Это рекомендуемый подход для большинства администраторов и будет основным в данном руководстве.

Создание пользовательского компонента

Следуйте этим шагам, чтобы создать пользовательский компонент для настройки вашей темы:

  1. Перейдите в панель администратора вашего сайта и откройте /admin/config/customize/components

  2. Нажмите кнопку «Установить» в правом верхнем углу

  3. Выберите «+ Создать новый», введите имя для вашего компонента (например, «Мой пользовательский компонент»), выберите тип «Компонент» и нажмите «Создать»

  4. Вы автоматически будете перенаправлены на созданный вами новый компонент.

  5. Добавьте компонент в тему(ы), которую(ые) хотите настроить

    :warning: Не забудьте сохранить, нажав на зелёную галочку

  6. Нажмите «Редактировать код»

  7. Добавьте свои настройки в соответствующие разделы (CSS, <head> и т. д.)

  8. Нажмите «Сохранить», чтобы применить изменения

Важные замечания

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

Следуя этим шагам, вы можете добавить пользовательский CSS, HTML или другие изменения в тему Discourse без прямого редактирования файлов удалённой темы. Этот метод подходит большинству администраторов, которые хотят внести небольшие изменения во внешний вид или функциональность своего сайта.

15 лайков

Спасибо за это! Где можно найти документацию о том, как добавлять, например, содержимое нижнего колонтитула только для определённых типов страниц или категорий?

Или, например, добавлять что-то в конец темы, когда это «опубликованная страница»?