# Лучший рабочий процесс для поддержки тем?

**URL:** https://meta.discourse.org/t/best-workflow-for-maintaining-themes/148931
**Category:** Development
**Created:** [23.Апрель.2020 02:09:53 UTC](https://meta.discourse.org/t/best-workflow-for-maintaining-themes/148931 "2020-04-23T02:09:53Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![TheDarkWizard](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/thedarkwizard/32/177913_2.png) [@TheDarkWizard](https://meta.discourse.org/u/TheDarkWizard)
#### Post date: [23.Апрель.2020 02:09:53 UTC](https://meta.discourse.org/t/best-workflow-for-maintaining-themes/148931/1 "2020-04-23T02:09:53Z")

</div>

Всем привет,

Хотел спросить, какой метод считается рекомендуемым или лучшим для сохранения ваших правок/кастомизаций, например, в существующей теме?

В качестве примера, я бы хотел внести изменения в замечательную [тему Material Design Stock](https://meta.discourse.org/t/material-design-stock-theme/47142/363) от @rewphus. Интересно, будет ли хорошей идеей сделать форк, развивать его на его основе, а затем пытаться синхронизировать изменения с исходной версией?

Я знаю, что в других системах форумов, где не используются концепции репозиториев или Git, можно установить копию темы, а затем установить вторую копию как дочернюю, редактируя только дочернюю тему. Таким образом, при появлении обновлений вы обновляете родительскую тему.

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [23.Апрель.2020 02:24:46 UTC](https://meta.discourse.org/t/best-workflow-for-maintaining-themes/148931/2 "2020-04-23T02:24:46Z")

</div>

> [@TheDarkWizard](#):
>
> Я знаю, что в других системах форумов, которые не используют концепции репозиториев или Git, вы могли бы установить копию темы, а затем установить вторую копию как дочернюю, и редактировать только её, чтобы при обновлении обновлялась родительская тема.

Вы можете сделать практически то же самое: создайте собственный компонент темы и добавьте его как дочерний к вашей базовой теме (источник из Git). Тогда вы сможете обновлять Git-тему по мере необходимости, не затрагивая вашу кастомную работу в компоненте.

Это самый простой способ; возможно, вы будете дублировать некоторый CSS, но, вероятно, не в неуправляемых масштабах.

Подробнее о темах и компонентах: [Beginner's guide to using Discourse Themes](https://meta.discourse.org/t/beginners-guide-to-using-discourse-themes/91966)

---

<div class="post-metadata">

### Author: ![TheDarkWizard](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/thedarkwizard/32/177913_2.png) [@TheDarkWizard](https://meta.discourse.org/u/TheDarkWizard)
#### Post date: [23.Апрель.2020 02:34:12 UTC](https://meta.discourse.org/t/best-workflow-for-maintaining-themes/148931/3 "2020-04-23T02:34:12Z")

</div>

Я прочитал это и полностью влюбился в этот процесс. Признаюсь, что до этого года я никогда по-настоящему не использовал Git для организации своей работы, но мне очень нравится рабочий процесс.

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

Я перечитаю этот документ, так как вчера читал его поздно вечером, и начну делать это в виде компонента темы :).

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [23.Апрель.2020 02:42:26 UTC](https://meta.discourse.org/t/best-workflow-for-maintaining-themes/148931/4 "2020-04-23T02:42:26Z")

</div>

> [@TheDarkWizard](#):
>
> Я думал об использовании компонента темы, но считал, что это должно быть что-то более мелкомасштабное на концептуальном уровне.

Такого требования нет. Я бы не рекомендовал копировать всю базовую тему и помещать её в компонент… это означает, что вы будете тащить с собой гораздо больше CSS, чем нужно, но вы можете добавлять столько переопределений, сколько захотите.

> [@TheDarkWizard](#):
>
> Может ли компонент темы каким-либо образом редактировать цветовую схему?

Не напрямую, но вы можете создать новую цветовую схему и выбрать её как вариант в настройках базовой темы. Любую цветовую схему можно применить к любой теме (насколько это будет эффективно, зависит от того, как была создана тема).

---

<div class="post-metadata">

### Author: ![TheDarkWizard](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/thedarkwizard/32/177913_2.png) [@TheDarkWizard](https://meta.discourse.org/u/TheDarkWizard)
#### Post date: [23.Апрель.2020 02:43:54 UTC](https://meta.discourse.org/t/best-workflow-for-maintaining-themes/148931/5 "2020-04-23T02:43:54Z")

</div>

> [@awesomerobot](#):
>
> Нет требования, чтобы это было так. Я бы не рекомендовал копировать всю базовую тему и помещать её в компонент… это означает перенос гораздо большего количества CSS, чем вам нужно, но вы можете добавить столько переопределений, сколько захотите.

Понятно, большое спасибо, что нашли время ответить мне. Это было очень полезно.

> [@awesomerobot](#):
>
> Не напрямую, но вы можете создать новую цветовую схему и выбрать её как вариант в настройках базовой темы. Любую цветовую схему можно применить к любой теме (насколько это будет эффективно, зависит от того, как была создана тема).

Звучит хорошо.

---

<div class="post-metadata">

### Author: ![DBHacker](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dbhacker/32/173072_2.png) [@DBHacker](https://meta.discourse.org/u/DBHacker)
#### Post date: [23.Апрель.2020 12:19:05 UTC](https://meta.discourse.org/t/best-workflow-for-maintaining-themes/148931/6 "2020-04-23T12:19:05Z")

</div>

> [@TheDarkWizard](#):
>
> В качестве примера я хотел бы внести правки в замечательную тему [Material Design Stock Theme](https://meta.discourse.org/t/material-design-stock-theme/47142/363) от @rewphus и хотел бы узнать, будет ли хорошей идеей сделать её форк, доработать, а затем попытаться синхронизировать с исходным репозиторием?

* * *

Предлагаемый рабочий процесс

* * *

- Сделайте форк и клонируйте компонент темы, который хотите изменить
- Откройте клонированное рабочее пространство в Visual Studio Code (VSC)
- Наслаждайтесь редактированием и программированием вашего компонента темы
- Отправьте изменения из VSC в ваш репозиторий на GitHub
- Установите изменённый компонент темы из вашего репозитория
- Протестируйте

* * *

Повторяйте процесс.

* * *

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [27.Апрель.2020 23:06:42 UTC](https://meta.discourse.org/t/best-workflow-for-maintaining-themes/148931/7 "2020-04-27T23:06:42Z")

</div>

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