Подсветка кода - нужный и важный атрибут на программистском сайте. Мы запустили такую возможность. Причем были исппробованы два варианта подсветки. Опишем их основные достоинства и недостатки. Первый вариант: грузится быстро, в упакованном скрипте нет лишних кодов (поддержка только тех языков, которые планируется использовать на сайте, если появятся новые - легко дополнить), распознавание языка автоматическое, легко меняется шаблон css для стиля отображения, большое число стартовых шаблонов, удобство копирования кода, скрипты можно не загружать на свой сайт а прямо с библиотеки скриптов от yandex(а) грузить. Второй вариант: ручное управление выбора языков и подключения скриптов, грузится медленно (если делать поддержку большого числа языков, например, при генерации динамически создаваемых страниц), по разному формируются четные и не четные строки, что может на некоторых сайтах вызвать проблемы со стилями отображения. Но у второго варианта красивая нумерация строк (удобно, если надо пояснить текст программы) и более функциональная подсветка. Наша позиция такова: по умолчанию использовать первый вариант, а в особых случаях - второй. Просьба высказывать свои замечания, пожелания и мнения по поводу вариантов подсветки.
program DemoParam;
uses Crt;
var А, В: byte;
K,N, II,I2,J1,J2:integer;
procedure WW1;
begin
А:=A+4; {изменение глобальной переменной A}
end;
procedure WW2 (var R,T: integer);
begin
R:=555;Т:=777
end;
procedure WW3 (R1,R2:integer;var X1,X2:integer);
{R1,R2–принимает, X1,X2-передает}
begin
X1:=R1+R2;
X2:=R1*R2
end;
begin
A:=9;
writeln(A:5);
WW1;
writeln (A:5);
WW2(K,N); {К,N результаты процедуры WW2}
writeln (K:5,N:5);
I1:=2; I2:=5;
WWЗ(I1,I2,J1,J2); {I1,I2 перед.; J1,J2 прин.XI,Х2}
writeln (J1:5, J2:5)
end.
program DemoParam; uses Crt; var А, В: byte; K,N, II,I2,J1,J2:integer; procedure WW1; begin А:=A+4; {изменение глобальной переменной A} end; procedure WW2 (var R,T: integer); begin R:=555;Т:=777 end; procedure WW3 (R1,R2:integer;var X1,X2:integer); {R1,R2–принимает, X1,X2-передает} begin X1:=R1+R2; X2:=R1*R2 end; begin A:=9; writeln(A:5); WW1; writeln (A:5); WW2(K,N); {К,N результаты процедуры WW2} writeln (K:5,N:5); I1:=2; I2:=5; WWЗ(I1,I2,J1,J2); {I1,I2 перед.; J1,J2 прин.XI,Х2} writeln (J1:5, J2:5) end.