Подключите модуль «code2html.php» и вызывайте функцию CppConvert ( $Code, $Format ). С помощью значения «pre» параметра $Format, можно указать, что обрабатываемый код необходимо разместить в отдельном абзаце с применением элемента <pre>. Для синтаксического оформления функция CppConvert выделяет лексемы языка С++ и обрамляет их элементами:
| |
| |
| |
| |
| |
| |
В структуре $c2hConf хранятся стили оформления каждого из перечисленных элементов.
В php-документе пишем строки:
<?php include_once ( "code2html.inc" ); print = CppConvert ( " // Шаблонный прототип свойства с доступом чтение/запись template < class Owner, class T, T (Owner::*Getter) (), void (Owner::*Setter) ( T ) > struct PropertyRW_ { Property ( Owner & owner ): owner_ ( owner ) {} operator T () { return (owner_.*Getter) (); } T operator () () { return (owner_.*Getter) (); } void operator = ( T value ) { (owner_.*Setter) ( value ); } Owner & owner_; }; // Макрос свойства с доступом чтение/запись</code> #define PropertyRW(Name, Owner, T, Setter, Getter) \ PropertyRW_<Owner, T, &Owner::Setter, &Owner::Getter> Name () \ { \ return PropertyRW_<Owner, T, &Owner::Setter, &Owner::Getter>(*this); \ } ", "none" ); ?>
В итоге получаем на выходе получается следующий размеченный текст:
Благодаря такому небольшому сценарию, очень удобно сопровождать материалы статей в формате HTML. Поначалу все фрагменты кода на C++ на данном сайте были оформлены с помощью code2html. Но я рекомендую использовать промышленно признанный пакет GeSHi, который содержит цветовые схемы для более чем 50 формальных языков.