Подсветка синтаксиса MatLab в WordPress

Для подсветки синтаксиса исходного кода на сайте WordPress я остановился на плагине SyntaxHighlighter Plus . Однако, в нем нет поддержки синтаксиса Matlab, хотя бы подсветки комментариев. Но что нам стоит дом построить — сейчас  возьмем и добавим.

При просмотре папки плагина  (wp-contentpluginssyntaxhighlighter-plus) видим, что реализация подсветки для конкретного языка программирования находится в файлах c именами типа shBrushPerl.js (для Perl).

Берем за основу синтаксис Delphi, более всего похожий на Matlab. Копируем файл shBrushDelphi.js под именем  shBrushMatlab.js.

Привязка JS-кода и имен языков находится в файле syntaxhighlighter.php, начиная со строки «$this->aliases = apply_filters( ‘agsyntaxhighlighter_aliases’, array». Таким образом, мы можем легко подключить новый файл, добавив строку:

‘MatLab’  => array(‘matlab’),

Простого копирования файла с новым именем недостаточно, в JS-файле есть привязки к имени языка, нужно заменить все вхождения Delphi на Matlab внутри файла shBrushMatlab.js

Теперь можно использовать подсветку синтаксиса Matlab  коде статьи, записывая текст программы внутри тегов «». Остается только добавить нужные правила: отредактировать список ключевых слов, написать регулярное выражение для экзотического стиля комментариев в Matlab(после символа %).

Регулярное выражение будет следующим: %.*$

Список ключевых слов, куда я добавил несколько базовых функций Matlab, не претендует на полноту. Тем не менее, итоговый java-script код можно увидеть здесь.

Небольшая демонстрация


s = 'string literal';% подсветка строк
x = zeros(1, 4);%подсветка основных функций Matlab
z = [1 2 ; 3 4];

for i=1:length(x)
if x(i)==0
x(i) = x(i)+1;%комментарий 4%4
end
end

return 0;

function y =  myfunc(x)

y = sin(x)+5;