Здесь я попробовал применить знания, полученные на Syntax Highlighter в Blogger'е. Вариант так сказать для ленивых: Щелкнуть по ссылке –> Добавить на страницу виджет –> Установить виджет –> Использовать.
Наука по использованию возможностей виджета - очень простая. Любой текст, помещенный в теги:
<pre class="тип_хайлайтера" name="code">
... Какой-то код, соответствующий типу хайлайтера ...
</pre>
или
<textarea name="code" class="тип_хайлайтера" cols="60" rows="10">
... Какой-то код, соответствующий типу хайлайтера ...
</textarea>
раскрасится виджетом без всяких там занудных правок шаблона блога, как в ранее рассмотренных вариантах подветки. Вот так то... Все гениальное - просто!
Подробности использования здесь, типы хайлайтеров здесь.
Пример использования для class="delphi":
- FUNCTION Utf8ToAnsi (Source : STRING; UnknownChar : CHAR = 'ї') : ANSISTRING;
- (* Converts the given UTF-8 String to Windows ANSI (Win-1252).
- If a character can not be converted, the "UnknownChar" is inserted. *)
- VAR
- SourceLen : INTEGER; // Length of Source string
- I, K : INTEGER;
- A : BYTE; // Current ANSI character value
- U : WORD;
- {$IFDEF UNICODE} // #2009-09-17 DremLIN
- Ch : WIDECHAR; // Dest char
- {$ELSE}
- Ch : CHAR; // Dest char
- {$ENDIF}
- Len : INTEGER; // Current real length of "Result" string
- BEGIN
- SourceLen := Length (Source);
- SetLength (Result, SourceLen); // Enough room to live
- Len := 0;
- I := 1;
- WHILE I <= SourceLen DO BEGIN
- A := ORD (Source [I]);
- IF A < $80 THEN BEGIN // Range $0000..$007F
- INC (Len);
- {$IFDEF UNICODE} // #2009-09-17 DremLIN
- Result [Len] := AnsiChar(Source[I]);
- {$ELSE}
- Result [Len] := Source [I];
- {$ENDIF}
- INC (I);
- END
- ELSE BEGIN // Determine U, Inc I
- IF (A AND $E0 = $C0) AND (I < SourceLen) THEN BEGIN // Range $0080..$07FF
- U := (WORD (A AND $1F) SHL 6) OR (ORD (Source [I+1]) AND $3F);
- INC (I, 2);
- END
- ELSE IF (A AND $F0 = $E0) AND (I < SourceLen-1) THEN BEGIN // Range $0800..$FFFF
- U := (WORD (A AND $0F) SHL 12) OR
- (WORD (ORD (Source [I+1]) AND $3F) SHL 6) OR
- ( ORD (Source [I+2]) AND $3F);
- INC (I, 3);
- END
- ELSE BEGIN // Unknown/unsupported
- INC (I);
- FOR K := 7 DOWNTO 0 DO
- IF A AND (1 SHL K) = 0 THEN BEGIN
- INC (I, (A SHR (K+1))-1);
- BREAK;
- END;
- U := WIN1252_UNICODE [ORD (UnknownChar)];
- END;
- Ch := UnknownChar; // Retrieve ANSI char
- FOR A := $00 TO $FF DO
- IF WIN1252_UNICODE [A] = U THEN BEGIN
- Ch := CHR (A);
- BREAK;
- END;
- INC (Len);
- {$IFDEF UNICODE} // #2009-09-17 DremLIN
- Result [Len] := AnsiChar(Ch);
- {$ELSE}
- Result [Len] := Ch;
- {$ENDIF}
- END;
- END;
- SetLength (Result, Len);
- END;
Смотрю на красивую подсветку кода Delphi. Радуюсь.
- DejaVu???
- Ку!!!...
Комментариев нет:
Отправить комментарий