Подсветка синтаксиса. Плагин Wordpress

Обсуждение ПО и его настройки
Ответить
Аватара пользователя
Gregory
Сообщения: 17
Зарегистрирован: 26 окт 2017, 17:21

Уважаемые форумчане,
Т.к. я веду блог (хотя это больше заметки из жизни) стараюсь оформлять все красиво.
До этого я применял простой тег <code></code> для вставки команд из RouterOS

Посидел подумал, а не написать ли простенький плагин для Wordpress для подсветки синтаксиса, как в терминале RouterOS:
Screenshot_2.png
Screenshot_2.png (2.05 КБ) 1417 просмотров


Начало положено, но я столкнулся с проблемой. А именно с регулярками.. Да да те самые, с помощью, которых нужно вылавливать символы, определенные команды и кучу всего другого.
Прошу посильной помощи в написании плагина.
Code on GitHub

На данный момент использую функцию

Код: Выделить всё

preg_replace

Мы имеем несколько цветов для различных типов действий
1. Вход в меню и переходы rgb(0,155,155)
2. Команды rgb(155,0,155)
3. Параметры rgb(0,155,0)
4. Символы rgb(155,155,0)

Пока это выглядит так:
Screenshot_3.png
Screenshot_3.png (17.57 КБ) 1417 просмотров


Если получится все сделать, как нужно. Данный код пригодится многим, кто занимается Микротиками и делится с другими информацией по ним.
Да и эстетично :-):

Код:

Код: Выделить всё

// Строки поиска
      $search = array(
         '/(\/system|\/interface|wireless)[\ ]|(\:)/si', // Входное меню
         '/\b(add|set|get|find|put|print)\b/si', // Действия
         '/(default\-name|name|mtu|l2mtu|mac-address|arp|interface\-type|mode|ssid|frequency|band|channel\-width|scan-list|wireless\-protocol|vlan\-mode|vlan\-id|wds\-mode|wds\-default\-bridge|wds\-ignore\-ssid|bridge\-mode|default\-authentication|default\-forwarding|default\-ap\-tx\-limit|default\-client\-tx\-limit|hide\-ssid|security\-profile|compression)[\=]|(detail)/si', // Параметры
         '/([\[|\]])|(\;)/si', // Символы
      );

Код: Выделить всё

// Замена входного меню
      $replace = array(
         '<span class="color-menu">\\0</span>', // Входное меню
         '<span class="color-action">\\0</span>', // Действия
         '<span class="color-param">\\0</span>', // Параметры
         '<span class="color-symbol">\\0</span>', // Символы
      );

Код: Выделить всё

$content = preg_replace($search, $replace, $content);


Некоторые заметки из жизни: gregory-gost.ru
Ответить