Форматирование исходных кодов в чатах mql5.com с помощью расширения для браузеров
24 июня 2025, 15:39
0
74
Чаты пользователей на сайте mql5.com с некоторых пор лишились многих полезных "фишек" из разряда форматирования: в частности, в них пропало привычное форматирование вставленных блоков исходных кодов. Раньше такая функциональность поддерживалась, но потом (видимо, в тот момент, когда чаты были интегрированы непосредственно в терминал MT5) пропала. И судя по всему, компания MQ не собирается эту возможность возвращать. Поэтому, как всегда, "спасение утопающих - дело рук самих утопающих".
Предлагаю расширение для браузеров Chrome и подобных, которое отчасти решает проблему и добавляет на лету форматирование блоков кода на страницах чатов, путем внедрения в HTML стандартного для таких случаев на mql5.com тега-контейнера - <pre class='code'>...</pre>.
Название расширения - самоговорящее - MQL5-chat-with-source-code-blocks-formatting.
Для установки расширение нужно скачать и разжать прилагаемый архив. Полученную папку нужно подключить в браузере как распакованное расширение. Делается это через меню Настройки -> Расширения -> Управление расширениями.
В открывшемся окне разрешаем Режим разработчика (слайдер справа) и нажимаем кнопку Загрузить распакованное расширение.
Расширение нужно включить (слайдер в панели расширения).
После этого расширение само активизируется только на сайте mql5.com с поддоменами.
Расширение анализирует чаты на 3 вида блоков текста:
- строки с явным переносом (тег <br>) с отступом вначале (пробелы, табуляции) - а-ля stackoverflow.com;
- блоки с явным указанием специального форматирования в синтаксисе небезызвестного markdown-а, т.е. ``` многострочный исходный код ```, здесь ` - обратный "тик";
- такие же блоки markdown, как и п.2, но с указанием языка mql5: ```mql5 многострочный исходный код ```;
Первый вариант сработает для старых кодов, которые уже вставлены в чаты, как правило с помощью copy&paste из редактора кода. Единственный минус в том, что во фрагменте кода не всегда есть отступ, тогда он не будет отформатирован правильно или целиком.
Варианты 2 и 3 подходят для новых сообщений в чаты - уже после установки расширения. Также они не чувствительны к отступам и охватят весь текст между начальным ``` и конечными ```.
Разница между ``` и ```mql5 в том, что последний дополнительно подсвечивает основные ключевые слова MQL5. Делается это с помощью парсинга и вставки тегов <span class='keyword'> вокруг ключевых слов. Это более красиво, но может быть более накладно в плане загрузки CPU, если в перспективе к подсветке ключевых слов добавить подсветку встроенных функций (<span class='functions'>), макросов (<span class='macro'>), констант (<span class='predefines'>), строк (<span class='string'>) и комментариев (<span class='comment'>) - ведь всё это обрабатывается на лету во время рендеринга html-страницы. Отчасти из-за этого данный режим и не реализован полностью.
С включенным форматированием чат с исходным кодом может выглядеть так:

Исходные коды открыты, так что можно дополнять и исправлять по вкусу.
Файлы:
mql5chatsrcfmt.zip
42 kb


