# Статьи «Разрабатываем менеджер терминалов» [Документация приложения](../README.md) описывает актуальный код. Здесь хранятся материалы отдельных частей цикла, включая прежние версии интерфейса и решения, которые позднее менялись. | Часть | Текст | Состояние и источник | |---|---|---| | 1. Постановка задачи | [article.md](part-01/article.md) | [Опубликована, № 19804](https://www.mql5.com/ru/articles/19804); загружена с сайта | | 2. Запуск нескольких экземпляров | [article.md](part-02/article.md) | [Опубликована, № 19852](https://www.mql5.com/ru/articles/19852); загружена с сайта | | 3. Информация о счёте и конфигурация | [article.md](part-03/article.md) | [Опубликована, № 19946](https://www.mql5.com/ru/articles/19946); загружена с сайта | | 4. Сервис для получения информации о терминалах | [article.md](part-04/article.md) | Подготовленный текст [части № 20150](https://www.mql5.com/ru/articles/20150), материалы публикации сохранены локально | | 5. Создание экземпляров и настройка счетов | [draft.md](part-05/draft.md) | Рабочий черновик, ветка `article-23709` | У первых трёх частей есть `source.md` с адресом, датой загрузки и сведениями об импорте, `publish/article.html` с телом опубликованной статьи и локальные изображения. Код сохранён блоками в Markdown. Таблицы оставлены в HTML, чтобы сохранить их структуру. Это копии публикаций, а не новые редакции текстов. ## Папка каждой части ```text part-NN/ draft.md рабочий текст до завершения редакции article.md завершённый текст или импорт опубликованной статьи notes.md заметки и результаты экспериментов, если нужны source.md источник и дата, если текст загружен с сайта images/ изображения только этой статьи publish/ HTML, описание и отдельные листинги для публикации ``` Необязательно создавать все файлы заранее. Пока текст в работе, используем `draft.md`; после завершения редакции переименовываем его в `article.md` и обновляем ссылку в этом каталоге. Дополнительную копию того же текста хранить не требуется: предыдущие редакции остаются в Git. Подготовленные файлы публикации храним отдельно от Markdown. Оглавление статьи составляется вручную. Изображения подключаются относительно текста: `images/имя-файла.png`. У каждой части свой набор, поэтому обновление пятой статьи не меняет снимки опубликованной четвёртой. После переименования файлов нужно проверять также скрипты подготовки HTML и ссылки из документации. Общие материалы: - [Памятка по стилю](style-notes.md). - [Идеи и ссылки для следующих частей](future-notes.md). - [Исторические заметки к четвёртой части](part-04/notes.md). ## Подготовка и импорт HTML четвёртой части собирается отдельным скриптом, рассчитанным на её разделы и адрес статьи: ```powershell python -m pip install Markdown python docs/articles/part-04/publish/build_article_html.py ``` Он обновляет `part-04/publish/article4.html` и `publish/code/*.txt`. Эти листинги в редактор MQL5 нужно вставлять через инструмент «Код», а изображения загружать отдельно. Markdown — основной редактируемый текст; HTML нужен для переноса на сайт. `part-04/publish/article4-site.html` — сохранённая копия тела статьи с сайта после исправлений модератора, включая подсветку, выполненную мастером «Код». Её не перезаписывает сборщик Markdown. Архив к четвёртой части собирается отдельно: ```powershell python docs/articles/part-04/publish/build_archive.py ``` Результат — `part-04/publish/MQL5.zip` с папкой `MQL5` и путями установки проекта. Скрипт берёт код из тега `p4`, добавляет оформленный исходник сервиса из рабочего дерева только при совпадении логики с `p4` и подставляет пример конфигурации без реквизитов. Новые возможности пятой части и исполняемые EX5 туда не попадают. Для повторного импорта первых трёх опубликованных частей: ```powershell python docs/articles/import_published.py ``` Скрипт использует стандартную библиотеку Python и перезаписывает локальные копии этих трёх частей, включая изображения. Если в них появились собственные правки, сначала сохраните их в Git. Импорт не публикует изменения на сайте. ## Связь с документацией Вместе с кодом новой части обновляем руководства в родительской папке `docs` и при необходимости быстрый старт в README. Опубликованные тексты не переписываем под каждое изменение приложения: они фиксируют соответствующий этап разработки. Перед публикацией сверяем листинги, снимки, версии файлов в таблице архива и проверяем ссылки после переносов.