Подсветка кода - нужный и важный атрибут на программистском сайте. Мы запустили такую возможность. Причем были исппробованы два варианта подсветки. Опишем их основные достоинства и недостатки. Первый вариант: грузится быстро, в упакованном скрипте нет лишних кодов (поддержка только тех языков, которые планируется использовать на сайте, если появятся новые - легко дополнить), распознавание языка автоматическое, легко меняется шаблон 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.






2010-10-24 • Просмотров [ 1815 ]