Geshi

So to integrate GeSHi with this site, I had to hack it slightly. Rather than change the actual geshi source, I chose to extend it with my own class.

class Geshi2 extends Geshi
{
 
	var ;
	var  = 1;
 
	function __construct(=null, =null, =null)
	{
		# Always use CSS
		();
		('geshi');
 
		# Set the variables
		if () 		();
     if () 	();
		if () 	();
	} // __construct
 
	function set_caption()
	{
		();
	} // set_caption
 
	function set_overall_class()
	{
		 = ;
		 = true;
	} // set_overall_class
 
	function Render(=null, =null, =null)
	{
		# Set the variables
		if () 		();
     if () 	();
		if () 	();
 
		if (!) {
			(." snippet");
		}
 
		echo ();
	} // Render
 
	function Footer()
	{
		 = ();
 
     if (GESHI_HEADER_NONE == ) {
         return ( != GESHI_NO_LINE_NUMBERS) ? '</ol>' . 
             : ;
     }
 
     if ( == GESHI_HEADER_DIV) {
         if ( != GESHI_NO_LINE_NUMBERS) {
             return "</ol></div>";
         }
         return ( ? '</div>' : '') .
             "</div>";
     }
     else {
         if ( != GESHI_NO_LINE_NUMBERS) {
             return "</ol></pre>";
         }
         return ( ? '</div>' : '') .
             "</pre>";
     }
	} // Footer
 
	function Caption(='')
	{
		# code...
	} // Caption
 
	function load_language()
	{
		();
      = array();
     require ;
     // Perhaps some checking might be added here later to check that
     //  data is a valid thing but maybe not
      = ;
     // Set strict mode if should be set
     if (['STRICT_MODE_APPLIES'] == GESHI_ALWAYS) {
          = true;
     }
     // Set permissions for all lexics to true
     // so they'll be highlighted by default
     foreach (['KEYWORDS'] as  => ) {
         ['KEYWORDS'][] = true;
     }
     foreach (['COMMENT_SINGLE'] as  => ) {
         ['COMMENTS'][] = true;
     }
     foreach (['REGEXPS'] as  => ) {
         ['REGEXPS'][] = true;
     }
 
     if (!) {
     	// Set default class for CSS
       = ;
     }
	} // load_language
 
} // Geshi2
Example 1 -- GeSHi2.php -- Select Code