Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Side by Side Diff: source/libvpx/examples/includes/geshi/contrib/cssgen.php

Issue 148913004: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 <?php
2 /******************************************************************************* ******
3 * cssgen.php
4 * ----------
5 * Author: Nigel McNie (nigel@geshi.org)
6 * Copyright: (c) 2004 Nigel McNie
7 * Release Version: 1.0.8.1
8 * Date Started: 2004/05/20
9 *
10 * Application to generate custom CSS files for GeSHi (based on an idea by Andre as
11 * Gohr)
12 *
13 ******************************************************************************* ******
14 *
15 * This file is part of GeSHi.
16 *
17 * GeSHi is free software; you can redistribute it and/or modify
18 * it under the terms of the GNU General Public License as published by
19 * the Free Software Foundation; either version 2 of the License, or
20 * (at your option) any later version.
21 *
22 * GeSHi is distributed in the hope that it will be useful,
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 * GNU General Public License for more details.
26 *
27 * You should have received a copy of the GNU General Public License
28 * along with GeSHi; if not, write to the Free Software
29 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30 *
31 ******************************************************************************* *****/
32
33 set_magic_quotes_runtime(0);
34 //
35 // Functions
36 //
37
38 function make_header ( $title )
39 {
40 echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w 3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
41 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
42 <head>
43 <title>GeSHi CSS Generator :: ' . $title . ' </title>
44 <style type="text/css" media="screen">
45 <!--
46 html {
47 font-family: Verdana, Arial, sans-serif;
48 font-size: 80%;
49 background-color: #d0d0d0;
50 }
51 body {
52 margin: 10px;
53 padding: 5px;
54 border: 1px solid #f0f0f0;
55 background-color: #f6f6f6;
56 }
57 h1 {
58 border-bottom: 2px solid #e0e0e0;
59 font-weight: normal;
60 font-size: 150%;
61 color: #c0c0c0;
62 }
63 input, textarea {
64 border: 1px solid #d0d0d0;
65 }
66 th {
67 text-align: right;
68 font-weight: normal;
69 }
70 pre {
71 font-size: 110%;
72 color: #202020;
73 }
74 #footer {
75 color: #b0b0b0;
76 text-align: center;
77 font-size: 90%;
78 margin: 0 auto;
79 border-top: 1px solid #e0e0e0;
80 }
81 #footer a {
82 color: #c0c0c0;
83 }
84 -->
85 </style>
86 <script type="text/javascript">
87 function select (state)
88 {
89 var cboxes = document.getElementsByTagName(\'input\');
90 for (var i = 0; i < cboxes.length; i++) {
91 if (cboxes[i].type == "checkbox") {
92 if (state == "true") {
93 cboxes[i].checked = true;
94 } else if (state == "false") {
95 cboxes[i].checked = false;
96 } else if (state == "invert") {
97 cboxes[i].checked = !cboxes[i].checked;
98 }
99 }
100 }
101 }
102 </script>
103 </head>
104 <body>
105 <h1>' . $title . '</h1>
106 ';
107 }
108
109 function make_footer ()
110 {
111 echo '<div id="footer"><a href="http://qbnz.com/highlighter/">GeSHi</a> &cop y; Nigel McNie, 2004, released under the GPL</div></body>
112 </html>';
113 }
114
115
116 function get_var ( $var_name )
117 {
118 if ( isset($_GET[$var_name]) )
119 {
120 return str_replace("\'", "'", $_GET[$var_name]);
121 }
122 elseif ( isset($_POST[$var_name]) )
123 {
124 return str_replace("\'", "'", $_POST[$var_name]);
125 }
126 return null;
127 }
128
129
130
131 //
132 // Unset everything
133 //
134 foreach ( $_REQUEST as $var )
135 {
136 unset($$var);
137 }
138 foreach ( array(
139 '_POST' => 'HTTP_POST_VARS',
140 '_GET' => 'HTTP_GET_VARS',
141 '_COOKIE' => 'HTTP_COOKIE_VARS',
142 '_SERVER' => 'HTTP_SERVER_VARS',
143 '_ENV' => 'HTTP_ENV_VARS',
144 '_FILES' => 'HTTP_POST_FILES') as $array => $other )
145 {
146 if ( !isset($$array) )
147 {
148 $$array = $$other;
149 }
150 unset($$other);
151 }
152
153
154 // Get what step we're up to
155 $step = get_var('step');
156
157 if ( !$step || $step == 1 )
158 {
159 $errors = 0;
160 make_header('Step 1');
161 echo "Welcome to the GeSHi CSS generator.<br /><pre>Searching for GeSHi... ";
162
163 // Find GeSHi
164 $geshi_path = get_var('geshi-path');
165 $geshi_lang_path = get_var('geshi-lang-path');
166
167 if ( !$geshi_path )
168 {
169 $geshi_path = '../geshi.php';
170 }
171 if ( !$geshi_lang_path )
172 {
173 $geshi_lang_path = '../geshi/';
174 }
175
176
177 if ( is_file($geshi_path) && is_readable($geshi_path) )
178 {
179 // Get file contents and see if GeSHi is in here
180 $file = @file($geshi_path);
181 $contents = '';
182 foreach ( $file as $line )
183 {
184 $contents .= $line;
185 }
186 if ( strpos($contents, '<?php
187 /**
188 * GeSHi - Generic Syntax Highlighter') !== false )
189 {
190 echo '<span style="color: green;">Found at ' . realpath($geshi_path) . '</span>';
191 }
192 else
193 {
194 ++$errors;
195 $no_geshi_dot_php_error = true;
196 echo '<span style="color: red;">Not found</span>';
197 }
198 }
199 else
200 {
201 ++$errors;
202 $no_geshi_dot_php_error = true;
203 echo '<span style="color: red;">Not found</span>';
204 }
205
206 // Find language files
207 echo "\nSearching for language files... ";
208 if ( is_readable($geshi_lang_path . 'css-gen.cfg') )
209 {
210
211 echo '<span style="color: green;">Found at ' . realpath($geshi_lang_path ) . '</span>';
212 }
213 else
214 {
215 ++$errors;
216 $no_lang_dir_error = true;
217 echo '<span style="color: red;">Not found</span>';
218 }
219 echo "</pre>\n";
220
221 if ( $errors > 0 )
222 {
223 // We're gonna have to ask for the paths...
224 echo 'Unfortunately CSSGen could not detect the following paths. Please input them and press &quot;submit&quot; to try again.';
225 echo "
226 <form action=\"cssgen.php\" method=\"post\">";
227 if ( $no_geshi_dot_php_error )
228 {
229 echo "
230 <br />geshi.php: <input type=\"text\" name=\"geshi-path\" value=\"" . realpath(' ../geshi.php') . "\" size=\"50\" />";
231 }
232 else
233 {
234 echo '<input type="hidden" name="geshi-path" value="' . htmlspecialc hars($geshi_path) . '" />';
235 }
236 if ( $no_lang_dir_error )
237 {
238 echo "
239 <br />language files directory: <input type=\"text\" name=\"geshi-lang-path\" va lue=\"" . realpath('../geshi/') . "/\" size=\"50\" /> (should have a trailing sl ash)";
240 }
241 else
242 {
243 echo '<input type="hidden" name="geshi-lang-path" value="' . $geshi_ lang_path . '" />';
244 }
245
246 echo "
247 <br /><input type=\"submit\" value=\"Search\" /></form>";
248 }
249 else
250 {
251 // no errors - echo continue form
252 echo 'Everything seems to be detected successfully. Use the button to co ntinue.
253 <br /><br /><form action="cssgen.php?step=2" method="post">
254 <input type="hidden" name="geshi-path" value="' . realpath($geshi_path) . '" />< input type="hidden" name="geshi-lang-path" value="' . realpath($geshi_lang_path) . '" />
255 <input type="submit" value="Step 2" />';
256 }
257
258 make_footer();
259 }
260 // Step 2
261 elseif ( $step == 2 )
262 {
263 make_header('Step 2');
264
265 $geshi_path = get_var('geshi-path');
266 $geshi_lang_path = get_var('geshi-lang-path');
267
268 $dh = opendir($geshi_lang_path);
269 $lang_files = array();
270 $file = readdir($dh);
271 while ( $file !== false )
272 {
273 if ( $file == '.' || $file == '..' || $file == 'CVS' || $file == 'css-ge n.cfg' )
274 {
275 $file = readdir($dh);
276 continue;
277 }
278 $lang_files[] = $file;
279 $file = readdir($dh);
280 }
281 closedir($dh);
282 sort($lang_files);
283
284 // Now installed languages are in $lang_files
285
286 echo '<form action="cssgen.php?step=3" method="post" id="step2">
287 What languages are you wanting to make this stylesheet for?<br /><br />
288 Detected languages:<br />';
289
290 foreach ( $lang_files as $lang )
291 {
292 $lang = substr($lang, 0, strpos($lang, '.'));
293 if ($lang) {
294 echo "<input type=\"checkbox\" name=\"langs[$lang]\" checked=\"check ed\" />&nbsp;$lang<br />\n";
295 }
296 }
297
298 echo "Select: <a href=\"javascript:select('true')\">All</a>, <a href=\"javas cript:select('false')\">None</a>, <a href=\"javascript:select('invert')\">Invert </a><br />\n";
299
300 echo 'If you\'d like any other languages not detected here to be supported, please enter
301 them here, one per line:<br /><textarea rows="4" cols="20" name="extra-langs"></ textarea><br />
302 ';
303
304 echo '<br />Styles:
305 <table>
306 <tr><th>Style for the overall code block:</th><td><input type="text" name="o verall" value="border: 1px dotted #a0a0a0; font-family: \'Courier New\', Courier , monospace; background-color: #f0f0f0; color: #0000bb;" /></td></tr>
307 <tr><th>Default Styles</th><td><input type="text" name="default-styles" valu e="font-weight:normal;background:transparent;color:#000; padding-left: 5px;" />< /td></tr>
308 <tr><th>Keywords I (if, do, while etc)</th><td><input type="text" name="keyw ords-1" value="color: #a1a100;" /></td></tr>
309 <tr><th>Keywords II (null, true, false etc)</th><td><input type="text" name= "keywords-2" value="color: #000; font-weight: bold;" /></td></tr>
310 <tr><th>Inbuilt Functions (echo, print etc)</th><td><input type="text" name= "keywords-3" value="color: #000066;" /></td></tr>
311 <tr><th>Data Types (int, boolean etc)</th><td><input type="text" name="keywo rds-4" value="color: #f63333;" /></td></tr>
312
313 <tr><th>Comments (//, <!-- --> etc)</th><td><input type="text" name="commen ts" value="color: #808080;" /></td></tr>
314 <tr><th>Escaped Characters (\n, \t etc)</th><td><input type="text" name="esc aped-chars" value="color: #000033; font-weight: bold;" /></td></tr>
315 <tr><th>Brackets ( ([{}]) etc)</th><td><input type="text" name="brackets" va lue="color: #66cc66;" /></td></tr>
316 <tr><th>Strings ("foo" etc)</th><td><input type="text" name="strings" value= "color: #ff0000;" /></td></tr>
317 <tr><th>Numbers (1, -54, 2.5 etc)</th><td><input type="text" name="numbers" value="color: #ff33ff;" /></td></tr>
318 <tr><th>Methods (Foo.bar() etc)</th><td><input type="text" name="methods" va lue="color: #006600;" /></td></tr>
319 </table>';
320
321 echo '<input type="hidden" name="geshi-path" value="' . realpath($geshi_path ) . '" /><input type="hidden" name="geshi-lang-path" value="' . realpath($geshi_ lang_path) . '" />
322 <input type="submit" value="Step 3" /></form>';
323
324 make_footer();
325 }
326 // Step 3
327 elseif ( $step == 3 )
328 {
329 make_header('Step 3');
330 echo '<p>Here is your completed stylesheet. Note that it may not be perfect - no regular expression styles are included for one thing,
331 you\'ll have to add those yourself (php and xml are just two languages that use them), and line numbers are not included, however
332 it includes most of the basic information.</p>';
333
334 // Make the stylesheet
335 $part_selector_1 = '';
336 $part_selector_2 = '';
337 $part_selector_3 = '';
338
339 $langs = get_var('langs');
340 $extra_langs = trim(get_var('extra-langs'));
341 if ( $extra_langs != '' )
342 {
343 $l = explode("\r\n", $extra_langs);
344 foreach ( $l as $lng )
345 {
346 $langs[$lng] = true;
347 }
348 }
349
350
351 foreach ( $langs as $lang => $dummy )
352 {
353 $part_selector_1 .= ".$lang {PART}, ";
354 $part_selector_2 .= ".$lang {PART1}, .$lang {PART2}, ";
355 $part_selector_3 .= ".$lang {PART1}, .$lang {PART2}, .$lang {PART3}, ";
356 }
357 $part_selector_1 = substr($part_selector_1, 0, -2);
358 $part_selector_2 = substr($part_selector_2, 0, -2);
359 $part_selector_3 = substr($part_selector_3, 0, -2);
360
361
362 $default_styles = get_var('default-styles');
363 $ol_selector = str_replace('{PART}', 'ol', $part_selector_1);
364 $overall_styles = get_var('overall');
365 $overall_selector = str_replace('{PART}', '', $part_selector_1);
366
367 $stylesheet = "/* GeSHi (c) Nigel McNie 2004 (http://qbnz.com/highlighter) * /";
368
369 if ( $overall != '' )
370 {
371 $stylesheet .= "\n$overall_selector {{$overall_styles}}";
372 }
373 if ( $default_styles != '' )
374 {
375 $default_selector = str_replace(array('{PART1}', '{PART2}'), array('.de1 ', '.de2'), $part_selector_2);
376 $stylesheet .= "\n$default_selector {{$default_styles}}";
377 }
378
379 // Do keywords
380 $keywords_1 = get_var('keywords-1');
381 $keyword_selector_1 = str_replace('{PART}', '.kw1', $part_selector_1);
382 if ( $keywords_1 != '' )
383 {
384 $stylesheet .= "\n$keyword_selector_1 {{$keywords_1}}";
385 }
386
387 $keywords_2 = get_var('keywords-2');
388 $keyword_selector_2 = str_replace('{PART}', '.kw2', $part_selector_1);
389 if ( $keywords_2 != '' )
390 {
391 $stylesheet .= "\n$keyword_selector_2 {{$keywords_2}}";
392 }
393
394 $keywords_3 = get_var('keywords-3');
395 $keyword_selector_3 = str_replace('{PART}', '.kw3', $part_selector_1);
396 if ( $keywords_3 != '' )
397 {
398 $stylesheet .= "\n$keyword_selector_3 {{$keywords_3}}";
399 }
400
401 $keywords_4 = get_var('keywords-4');
402 $keyword_selector_4 = str_replace('{PART}', '.kw4', $part_selector_1);
403 if ( $keywords_4 != '' )
404 {
405 $stylesheet .= "\n$keyword_selector_4 {{$keywords_4}}";
406 }
407
408 // Do other lexics
409 $comments = get_var('comments');
410 $comment_selector = str_replace(array('{PART1}', '{PART2}', '{PART3}'), arra y('.co1', '.co2', '.coMULTI'), $part_selector_3);
411 if ( $comments != '' )
412 {
413 $stylesheet .= "\n$comment_selector {{$comments}}";
414 }
415
416 $esc = get_var('escaped-chars');
417 $esc_selector = str_replace('{PART}', '.es0', $part_selector_1);
418 if ( $esc != '' )
419 {
420 $stylesheet .= "\n$esc_selector {{$esc}}";
421 }
422
423 $brackets = get_var('brackets');
424 $brk_selector = str_replace('{PART}', '.br0', $part_selector_1);
425 if ( $brackets != '' )
426 {
427 $stylesheet .= "\n$brk_selector {{$brackets}}";
428 }
429
430 $strings = get_var('strings');
431 $string_selector = str_replace('{PART}', '.st0', $part_selector_1);
432 if ( $strings != '' )
433 {
434 $stylesheet .= "\n$string_selector {{$strings}}";
435 }
436
437 $numbers = get_var('numbers');
438 $num_selector = str_replace('{PART}', '.nu0', $part_selector_1);
439 if ( $numbers != '' )
440 {
441 $stylesheet .= "\n$num_selector {{$numbers}}";
442 }
443
444 $methods = get_var('methods');
445 $method_selector = str_replace('{PART}', '.me0', $part_selector_1);
446 if ( $methods != '' )
447 {
448 $stylesheet .= "\n$method_selector {{$methods}}";
449 }
450
451 echo "<pre>$stylesheet</pre>";
452
453 make_footer();
454 }
455
456 ?>
OLDNEW
« no previous file with comments | « source/libvpx/examples/includes/geshi/contrib/aliased.php ('k') | source/libvpx/examples/includes/geshi/contrib/cssgen2.php » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698