Home | History | Annotate | Download | only in contrib
      1 <?php
      2 /**
      3  *  A simple script which outputs the CSS classes for all languages
      4  *  supported by GeSHi. You can access it directly to download
      5  *  the CSS file. On *NIX you can also do a simple `php cssgen.php > geshi.css`.
      6  *
      7  *   This file is part of GeSHi.
      8  *
      9  *  GeSHi is free software; you can redistribute it and/or modify
     10  *  it under the terms of the GNU General Public License as published by
     11  *  the Free Software Foundation; either version 2 of the License, or
     12  *  (at your option) any later version.
     13  *
     14  *  GeSHi is distributed in the hope that it will be useful,
     15  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     16  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     17  *  GNU General Public License for more details.
     18  *
     19  *  You should have received a copy of the GNU General Public License
     20  *  along with GeSHi; if not, write to the Free Software
     21  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
     22  *
     23  * @package    geshi
     24  * @subpackage contrib
     25  * @author     revulo <revulon (at) gmail.com>
     26  * @copyright  2008 revulo
     27  * @license    http://gnu.org/copyleft/gpl.html GNU GPL
     28  *
     29  */
     30 
     31 require dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'geshi.php';
     32 $geshi = new GeSHi;
     33 
     34 $languages = array();
     35 if ($handle = opendir($geshi->language_path)) {
     36     while (($file = readdir($handle)) !== false) {
     37         $pos = strpos($file, '.');
     38         if ($pos > 0 && substr($file, $pos) == '.php') {
     39             $languages[] = substr($file, 0, $pos);
     40         }
     41     }
     42     closedir($handle);
     43 }
     44 sort($languages);
     45 
     46 header('Content-Type: application/octet-stream');
     47 header('Content-Disposition: attachment; filename="geshi.css"');
     48 
     49 echo "/**\n".
     50      " * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n" .
     51      " * (http://qbnz.com/highlighter/ and http://geshi.org/)\n".
     52      " */\n";
     53 
     54 foreach ($languages as $language) {
     55     $geshi->set_language($language);
     56     // note: the false argument is required for stylesheet generators, see API documentation
     57     $css = $geshi->get_stylesheet(false);
     58     echo preg_replace('/^\/\*\*.*?\*\//s', '', $css);
     59 }
     60