Шаблон:ChangelogItem: различия между версиями

Нет описания правки
 
(не показаны 42 промежуточные версии этого же участника)
Строка 2: Строка 2:
== Описание ==
== Описание ==
=== Что делает ===
=== Что делает ===
Шаблон генерирует строку для чейндждога. В content можно вставить форматированные текст, рисунки и галереи рисунков.
Шаблон генерирует строку для чейндждога. В content можно вставить форматированный текст, рисунки и галереи рисунков.


Как это работает. Шаблон получает в версию и дату изменения, в models перечень затронутых изменением моделей через запятую, а в content информацию об изменении. В результате генерирутся несколько форматированных строк, которые вставляются в страницу, откуда был вызван шаблон.
Как это работает. Шаблон получает в версию и дату изменения, в models перечень затронутых изменением моделей через запятую, а в content информацию об изменении. В результате генерирутся несколько форматированных строк, которые вставляются в страницу, откуда был вызван шаблон.
Строка 8: Строка 8:
Кроме этого, если страницу, куда был вставлен шаблон, вызвать с параметром-моделью, то шаблон ChangelogItem выведет только те изменения, которые затрагивают это устройство. Таким образом формируется список изменений для модели. Можно передать только одну модель.
Кроме этого, если страницу, куда был вставлен шаблон, вызвать с параметром-моделью, то шаблон ChangelogItem выведет только те изменения, которые затрагивают это устройство. Таким образом формируется список изменений для модели. Можно передать только одну модель.


Проверка ошибок. Так же для каждой линейки есть инклюд с перечнем поделей, который вставлен в общий список изменений, чтобы было удобно копировать названия, а ещё с использованием этого инклюда происходит проверка написания модели. Если модель написана неверно, снизу пункта будет выведено текущее написание, окрашенное в красный цвет. Для проверки используется [[Шаблон: Check]].
Проверка ошибок. Так же для каждой линейки есть инклюд с перечнем поделей, который вставлен в общий список изменений, чтобы было удобно копировать названия, а ещё с использованием этого инклюда происходит проверка написания модели. Если модель написана неверно, снизу пункта будет выведено текущее написание, окрашенное в красный цвет. Для проверки используется [[Шаблон: Check]], который ищет по инклюду [[Wbincludes: CheckModels]].


=== Живые примеры использования ===
=== Живые примеры использования ===
Строка 16: Строка 16:
* [[WB-MR6C v.3: Changelog]] — страница со списком изменений в прошивке реле WB-MR6C v.3
* [[WB-MR6C v.3: Changelog]] — страница со списком изменений в прошивке реле WB-MR6C v.3


== Инструкции==
== Программисту ==
=== Для программиста ===
{{Anchor|coder}}
=== Что делать ===
Так как списки изменений разбиты по типам устройств (реле, датчики и т.п.), то надо определиться, куда мы будем писать изменения, потом:
Так как списки изменений разбиты по типам устройств (реле, датчики и т.п.), то надо определиться, куда мы будем писать изменения, потом:
# Открыть инклюд общего списка изменения для нужного типа устройств, [[Список_шаблонов#changelogs |список инклюдов]].
# Открыть инклюд общего списка изменения для нужного типа устройств, [[Список_шаблонов#changelogs |список инклюдов]].
# Внести по образцу новый пункт, указать: версию прошивки, дату релиза, наименования затронутых моделей через запятую и заполнить описание в теге ''content''.
# Внести по образцу новый пункт, указать:  
#* release — статус прошивки testing/stable
#* version — версия прошивки
#* date — дата выпуска прошивки в русском формате ДД.ММ.ГГГГ
#* models — наименования затронутых моделей через запятую с подчеркиванием на конце, например, <code>WB-MR6C_</code>
#* content — описание изменения, можно использовать форматированный текст, картинки и галереи.


Актуальный перечень моделей для выбранного типа устройств доступен внизу страницы изменений прошивки.  
Параметр <code>{{{1}}}</code> не удалять — это для индивидуального списка.
[[Image: ChangelogItemModels.png |900px|thumb| center]]


Если модель указана неверно, она будет продублирована сразу под описанием изменения и окрашена в красный цвет.
Стараемся выдержать одинаковый стиль: добавлено, исправлено и т.п. Если где-то написано по-другому — поправь.
[[Image: ChangelogItemError.png |900px|thumb| center ]]


=== Для техписателя ===
=== Прошивка из testing ===
При выходе новой модели устройства:
Пример:
# Добавить название модели в инклюд, по которому происходит проверка правильности написания модели.
:<syntaxhighlight lang="wiki">
# Создать сраницу изменений в прошивке устройства, в названии указать модель.
#:Например, страница <code>WB-MR6C v.3: Changelog</code> выглядит так:
#:<syntaxhighlight lang="wikitext">
{{DISPLAYTITLE: Изменения в прошивке WB-MR6C v.3 }}
== Общее ==
{{Wbincludes:Changelog Update Devices}}
 
== Список изменений ==
{{Wbincludes:WB-MR: Changelog|WB-MR6C v.3}}
</syntaxhighlight>
 
[[Список_шаблонов#changelogs |Список инклюдов]]
 
== Пример ==
=== Код ===
<pre>
{{ChangelogItem
{{ChangelogItem
| {{{1}}}
| {{{1}}}
| release = testing
| version = 1.18.4
| version = 1.18.4
| date = 26.04.2022
| date = 26.04.2022
| models = WB-MR6C v.2, WB-MR6C v.3, WB-MR6C/NC v.1
| models = WB-MR6C_, WB-MR6C v.2_, WB-MR6C v.3_
| content=
| content=
Добработка безопасного режима
Добработка безопасного режима
}}
}}
</pre>
</syntaxhighlight>
=== Результат ===
 
[[Image: ChangelogItemResultTesting.png |900px|thumb| center | Запись о тестовой версии прошивки]]
 
=== Прошивка из stable ===
То же самое, что и для testing, но нужно указать <code>release = stable</code>:
:<syntaxhighlight lang="wiki">
{{ChangelogItem
{{ChangelogItem
| {{{1}}}
| {{{1}}}
| release = stable
| version = 1.18.4
| version = 1.18.4
| date = 26.04.2022
| date = 26.04.2022
| models = WB-MR6C v.2, WB-MR6C v.3, WB-MR6C/NC v.1
| models = WB-MR6C_, WB-MR6C v.2_, WB-MR6C v.3_
| content=
| content=
Добработка безопасного режима
Добработка безопасного режима
}}</noinclude><includeonly>{{#vardefine:TextTemplate
}}
| '''{{{version}}} ({{{date}}})'''
</syntaxhighlight>
[[Image: ChangelogItemResult.png |900px|thumb| center | Запись о стабильной версии прошивки]]
 
=== Готовый список моделей ===
Актуальный список моделей для выбранного типа устройств смотрите внизу общей страницы изменений в прошивке.
[[Image: ChangelogItemModels.png |900px|thumb| center | Список моделей для реле]]
 
=== Обработка ошибок в названии модели ===
Если модель указана неверно, она будет продублирована под описанием изменения и окрашена в красный цвет.
[[Image: ChangelogItemError.png |900px|thumb| center | В названии модели ошибка]]
 
== Техписателю ==
При выходе новой модели устройства:
# Добавить название модели в инклюд, по которому происходит проверка правильности написания модели. [[Список_шаблонов#changelogs |Список инклюдов]].
# Создать сраницу изменений в прошивке устройства, в названии указать модель.
#:Например, страница [[WB-MR6C v.3: Changelog]] выглядит так:
#:<syntaxhighlight lang="wikitext">
{{DISPLAYTITLE: Изменения в прошивке WB-MR6C v.3}}
== Общее ==
{{Wbincludes:Changelog Update Devices}}
 
== Список изменений ==
{{Wbincludes:WB-MR: Changelog|WB-MR6C v.3_}}
</syntaxhighlight>
</noinclude><includeonly>{{#vardefine:IsTesting
|    {{#ifeq: {{{release}}} | testing | — <i>доступно в [[WB_Modbus_Devices_Firmware_Update|testing]]}}</i>
}}{{#vardefine:TryResult
| '''{{{version}}} ({{{date}}})''' {{#var:IsTesting}}
   
   
{{{content}}}
{{{content}}}
}}{{#vardefine:FalseResult
| '''{{{version}}} ({{{date}}})''' {{#var:IsTesting}}
<div class="text-gray">Без изменений для этого устройства.</div>
}}
}}
{{#ifexpr: {{#len:{{{1}}}}} > 7
{{#ifexpr: {{#count:{{{1}}}|WB}}>0
| {{#ifexpr: {{#count:{{{models}}}|{{{1}}}}} > 0 | {{#var:TextTemplate}}|<div class="hidden"></div>}}
| {{#ifexpr: {{#count:{{{models}}}|{{{1}}}}} = 1 | {{#var:TryResult}}|{{#var:FalseResult}} }}
| {{#var:TextTemplate}}
| {{#var:TryResult}}


<div class="text-gray">''{{{models}}}''</div>
<div class="text-gray">''{{{models}}}''</div>


{{#ifexpr: {{#count:{{{models}}}|WB-MR}} > 0 | {{Check|{{{models}}}|{{Wbincludes:WB-MR Models}}}}|<div class="hidden"></div>}}
{{Check|{{{models}}}|{{Wbincludes:CheckModels}} }}
}}</includeonly>
}}</includeonly>