bifurcado de antekov/mt5-manager
Describe simplified setup, optional server catalogs, independent connection tests, safe instance deletion, and per-terminal operation notifications. Add reproducible publication builders, refresh the source archive and listings, and record the remaining website and screenshot update steps.
# Статьи «Разрабатываем менеджер терминалов»
| |
| |
[Документация приложения](../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`; [редакция на MQL5](https://www.mql5.com/ru/articles/23709/278690#!tab=article) пока содержит прежние формы и требует обновления |
| |
| |
У первых трёх частей есть `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 -m pip install Markdown
| |
python docs/articles/part-05/publish/build_archive.py
| |
python docs/articles/part-05/publish/build_article_html.py
| |
```
| |
| |
Пакет Markdown нужен только для подготовки публикации, приложению он не требуется.
| |
| |
Первый собирает архив текущего приложения по явному списку файлов и обновляет
| |
таблицу архива в черновике из того же списка. Личный `config.json` не читается:
| |
в архиве он создаётся из `config.example.json`. Второй подготавливает HTML,
| |
отдельные листинги, описание и манифест иллюстраций. После переноса через мастера
| |
редактора HTML сохранённой страницы можно хранить в `part-05/publish/article5-site.html`.
| |
Блоки кода и изображения в заготовке HTML обозначены маркерами, которые следует
| |
заменить через инструменты «Код» и «Картинка» на сайте.
| |
| |
Для повторного импорта первых трёх опубликованных частей:
| |
| |
```powershell
| |
python docs/articles/import_published.py
| |
```
| |
| |
Скрипт использует стандартную библиотеку Python и перезаписывает локальные копии
| |
этих трёх частей, включая изображения. Если в них появились собственные правки,
| |
сначала сохраните их в Git. Импорт не публикует изменения на сайте.
| |
| |
## Связь с документацией
| |
| |
Вместе с кодом новой части обновляем руководства в родительской папке `docs`
| |
и при необходимости быстрый старт в README. Опубликованные тексты не переписываем
| |
под каждое изменение приложения: они фиксируют соответствующий этап разработки.
| |
Перед публикацией сверяем листинги, снимки, версии файлов в таблице архива и
| |
проверяем ссылки после переносов.
|