• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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@gmail.com>
26 * @copyright  2008 revulo
27 * @license    http://gnu.org/copyleft/gpl.html GNU GPL
28 *
29 */
30
31require dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'geshi.php';
32$geshi = new GeSHi;
33
34$languages = array();
35if ($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}
44sort($languages);
45
46header('Content-Type: application/octet-stream');
47header('Content-Disposition: attachment; filename="geshi.css"');
48
49echo "/**\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
54foreach ($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