| Index: source/libvpx/examples/gen_example_doxy.php
|
| ===================================================================
|
| --- source/libvpx/examples/gen_example_doxy.php (revision 247498)
|
| +++ source/libvpx/examples/gen_example_doxy.php (working copy)
|
| @@ -1,224 +0,0 @@
|
| -#!/usr/bin/env php
|
| -/*
|
| - * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license
|
| - * that can be found in the LICENSE file in the root of the source
|
| - * tree. An additional intellectual property rights grant can be found
|
| - * in the file PATENTS. All contributing project authors may
|
| - * be found in the AUTHORS file in the root of the source tree.
|
| - */
|
| -
|
| -
|
| -<?php
|
| -
|
| -/* This script converts markdown to doxygen htmlonly syntax, nesting the
|
| - * content inside a \page. It expects input on stdin and outputs on stdout.
|
| - *
|
| - * Usage: gen_example_doxy.php <page_identifier> "<page description>"
|
| - */
|
| -
|
| -
|
| -$geshi_path = dirname($argv[0])."/includes/geshi/geshi/"; // Language files
|
| -$tmp_token = '<!-- I wanna rock you, Chaka Khan -->';
|
| -
|
| -// Include prerequisites or exit
|
| -if(!include_once('includes/PHP-Markdown-Extra-1.2.3/markdown.php'))
|
| - die("Cannot load Markdown transformer.\n");
|
| -if(!include_once('includes/PHP-SmartyPants-1.5.1e/smartypants.php'))
|
| - die("Cannot load SmartyPants transformer.\n");
|
| -if(!include_once('includes/geshi/geshi.php'))
|
| - die("Cannot load GeSHi transformer.\n");
|
| -// ASCIIMathPHP?
|
| -// HTML::Toc?
|
| -// Tidy?
|
| -// Prince?
|
| -
|
| -/**
|
| - * Generate XHTML body
|
| - *
|
| - */
|
| -
|
| -$page_body = file_get_contents('php://stdin');
|
| -
|
| -// Transform any MathML expressions in the body text
|
| -$regexp = '/\[\[(.*?)\]\]/'; // Double square bracket delimiters
|
| -$page_body = preg_replace_callback($regexp, 'ASCIIMathPHPCallback', $page_body);
|
| -
|
| -// Fix ASCIIMathPHP's output
|
| -$page_body = fix_asciiMath($page_body);
|
| -
|
| -// Wrap block-style <math> elements in <p>, since Markdown doesn't.
|
| -$page_body = preg_replace('/\n(<math.*<\/math>)\n/', '<p class="eq_para">$1</p>', $page_body);
|
| -
|
| -// Transform the body text to HTML
|
| -$page_body = Markdown($page_body);
|
| -
|
| -// Preprocess code blocks
|
| -// Decode XML entities. GeSHi doesn't anticipate that
|
| -// Markdown has already done this.
|
| -$regexp = '|<pre><code>(.*?)<\/code><\/pre>|si';
|
| -while (preg_match($regexp, $page_body, $matches) > 0)
|
| -{
|
| - // Replace 1st match with token
|
| - $page_body = preg_replace($regexp, $tmp_token, $page_body, 1);
|
| - $block_new = $matches[1];
|
| - // Un-encode ampersand entities
|
| - $block_new = decode_markdown($block_new);
|
| - // Replace token with revised string
|
| - $page_body = preg_replace("|$tmp_token|", '<div class="codeblock">'.$block_new.'</div>', $page_body);
|
| -}
|
| -
|
| -// Run GeSHi over code blocks
|
| -$regexp = '|<div class="codeblock">(.*?)<\/div>|si';
|
| -$language = 'c';
|
| -
|
| -while (preg_match($regexp, $page_body, $matches))
|
| -{
|
| - $geshi = new GeSHi($matches[1], $language);
|
| - $geshi->set_language_path($geshi_path);
|
| - $block_new = $geshi->parse_code();
|
| - // Strip annoying final newline
|
| - $block_new = preg_replace('|\n <\/pre>|', '</pre>' , $block_new);
|
| - // Remove style attribute (TODO: Research this in GeSHi)
|
| - $block_new = preg_replace('| style="font-family:monospace;"|', '' , $block_new);
|
| - $page_body = preg_replace($regexp, $block_new, $page_body, 1);
|
| - unset($geshi); // Clean up
|
| -}
|
| -unset($block_new); // Clean up
|
| -
|
| -// Apply typographic flourishes
|
| -$page_body = SmartyPants($page_body);
|
| -
|
| -
|
| -/**
|
| - * Generate Doxygen Body
|
| - *
|
| - */
|
| -$page_id=(isset($argv[1]))?$argv[1]:"";
|
| -$page_desc=(isset($argv[2]))?$argv[2]:"";
|
| -print "/*!\\page ".$page_id." ".$page_desc."\n\\htmlonly\n";
|
| -print $page_body;
|
| -print "\\endhtmlonly\n*/\n";
|
| -
|
| -// ---------------------------------------------------------
|
| -
|
| -/**
|
| - * decode_markdown()
|
| - *
|
| - * Markdown encodes '&', '<' and '>' in detected code
|
| - * blocks, as a convenience. This will restore the
|
| - * encoded entities to ordinary characters, since a
|
| - * downstream transformer (like GeSHi) may not
|
| - * anticipate this.
|
| - *
|
| - **********************************************************/
|
| -
|
| -function decode_markdown($input)
|
| -{
|
| - $out = FALSE;
|
| -
|
| - $entities = array ('|&|'
|
| - ,'|<|'
|
| - ,'|>|'
|
| - );
|
| - $characters = array ('&'
|
| - ,'<'
|
| - ,'>'
|
| - );
|
| - $input = preg_replace($entities, $characters, $input);
|
| - $out = $input;
|
| -
|
| - return $out;
|
| -}
|
| -
|
| -
|
| -/**
|
| - * ASCIIMathML parser
|
| - * http://tinyurl.com/ASCIIMathPHP
|
| - *
|
| - * @PARAM mtch_arr array - Array of ASCIIMath expressions
|
| - * as returned by preg_replace_callback([pattern]). First
|
| - * dimension is the full matched string (with delimiter);
|
| - * 2nd dimension is the undelimited contents (typically
|
| - * a capture group).
|
| - *
|
| - **********************************************************/
|
| -
|
| -function ASCIIMathPHPCallback($mtch_arr)
|
| -{
|
| - $txt = trim($mtch_arr[1]);
|
| -
|
| - include('includes/ASCIIMathPHP-2.0/ASCIIMathPHP-2.0.cfg.php');
|
| - require_once('includes/ASCIIMathPHP-2.0/ASCIIMathPHP-2.0.class.php');
|
| -
|
| - static $asciimath;
|
| -
|
| - if (!isset($asciimath)) $asciimath = new ASCIIMathPHP($symbol_arr);
|
| -
|
| - $math_attr_arr = array('displaystyle' => 'true');
|
| -
|
| - $asciimath->setExpr($txt);
|
| - $asciimath->genMathML($math_attr_arr);
|
| -
|
| - return($asciimath->getMathML());
|
| -}
|
| -
|
| -/**
|
| - * fix_asciiMath()
|
| - *
|
| - * ASCIIMath pretty-prints its output, with linefeeds
|
| - * and tabs. Causes unexpected behavior in some renderers.
|
| - * This flattens <math> blocks.
|
| - *
|
| - * @PARAM page_body str - The <body> element of an
|
| - * XHTML page to transform.
|
| - *
|
| - **********************************************************/
|
| -
|
| -function fix_asciiMath($page_body)
|
| -{
|
| - $out = FALSE;
|
| -
|
| - // Remove linefeeds and whitespace in <math> elements
|
| - $tags_bad = array('/(<math.*?>)\n*\s*/'
|
| - , '/(<mstyle.*?>)\n*\s*/'
|
| - , '/(<\/mstyle>)\n*\s*/'
|
| - , '/(<mrow.*?>)\n*\s*/'
|
| - , '/(<\/mrow>)\n*\s*/'
|
| - , '/(<mo.*?>)\n*\s*/'
|
| - , '/(<\/mo>)\n*\s*/'
|
| - , '/(<mi.*?>)\n*\s*/'
|
| - , '/(<\/mi>)\n*\s*/'
|
| - , '/(<mn.*?>)\n*\s*/'
|
| - , '/(<\/mn>)\n*\s*/'
|
| - , '/(<mtext.*?>)\n*\s*/'
|
| - , '/(<\/mtext>)\n*\s*/'
|
| - , '/(<msqrt.*?>)\n*\s*/'
|
| - , '/(<\/msqrt>)\n*\s*/'
|
| - , '/(<mfrac.*?>)\n*\s*/'
|
| - , '/(<\/mfrac>)\n*\s*/'
|
| - );
|
| - $tags_good = array( '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - , '$1'
|
| - );
|
| - $out = preg_replace($tags_bad, $tags_good, $page_body);
|
| -
|
| - return $out;
|
| -
|
| -}
|
|
|